On Friday, 26 June 2015 at 07:00:22 UTC, thedeemon wrote:
On Friday, 26 June 2015 at 04:43:08 UTC, Rikki Cattermole wrote:
Looks like I will give a talk about D to our local Functional
Programming User Group in August.

irk be careful when showing off ranges. Get some damn good background of what D is first. It took me well over a year before I started to get into them.

For FP people working with combinators on lazy lists or sequences is a well known thing, so they should easily recognize it.

People in OCaml, F# or Elm write code like this every day:

Char.toCode c |> spt |> List.reverse |> List.map toString |> String.join " "

(this one is in Elm)

And in Haskell it looks similar but usually in backwards order and separated by "." and $. For haskellers, comparing D ranges with "classy prelude" shall be appropriate, I guess.

I think one should also talk about how D ranges when passed through several processing steps can keep important information in their types so that xs.retro.take(100).map!f.retro[33] works in O(1). This is what most other languages don't do.

I absolutely _hated_ laziness in Haskell. It made it impossible to reason about the performance of anything. I find it the complete opposite in D because so much happens at compiletime, I've seen ldc and gdc turn rather long range chains into assembly you'd expect from nested for loops.

Reply via email to