Futhark by example

futhark-lang.org

97 points by tosh 10 hours ago


lucb1e - an hour ago

I was so confused by the word factorial in the first example for a language, but decided to click it and just see what it means

Turns out, Futhark != https://en.wikipedia.org/wiki/Futhark (runes, old germanic alphabet)

That's like calling your programming language Latin?! The title could use some disambiguation...

ethanlipson - 9 hours ago

Futhark is really such a great idea. I'm not convinced that dependent types are worth the cognitive overhead in general, but it's definitely worth it to include the length as part of the type information for dynamic arrays, e.g.:

  concat(Vec<T, n>, Vec<T, m>) -> Vec<T, n+m>
  matmul(Mat<T, n, m>, Mat<T, m, l>) -> Mat<T, n, l>
  head(Vec<T, n+1>) -> (T, Vec<T, n>)
This would have saved me so much headache debugging CUDA kernels and numpy!! I wish it were a first-class feature in those frameworks, and even general-purpose languages, but alas.
Ferret7446 - 9 hours ago

It would be nice to not name your language after another language. (Yes I know it's a script, that doesn't change my point). I came here expecting something else.

antran22 - 5 hours ago

Was expecting to see some examples of how to read runes, but I am nonetheless equally satisfied.

https://en.wikipedia.org/wiki/Elder_Futhark

rowanG077 - 9 hours ago

Futhark is pretty great! And I have to say that the maintainer is insanely quick. It has happened on more than one occasion that I reported a bug and it's solved within the day. I have been using Futhark in prod for two years now and never had serious problems.

fulafel - 7 hours ago

Futhark is a glimmer of light in the wasteland of C/C++ styled low level GPU languages.

guessmyname - 7 hours ago

Couldn’t have chosen a more difficult (and ambiguous) name to pronounce, could you? It almost sounds like a curse that I often hear people say out in the bad streets of New York City.