Walter Bright:

I doubt they'll want to use an @tailrec attribute.

In Scala there is "@tailrec":
http://www.scala-lang.org/api/current/scala/annotation/tailrec.html

In both F# and OcaML there is the "rec" keyword:
http://msdn.microsoft.com/en-us/library/dd233232.aspx

http://caml.inria.fr/pub/docs/manual-ocaml-400/manual003.html#toc4

In Clojure there is "recur" (that is not an annotation):
http://clojure.org/special_forms?responseToken=08ea4841337f67bb8f07663aa70b03aca#recur

I think functional programmers are willing to use @tailrec attribute if it's well designed and it does what's written on its tin.


What about the @continuation
(http://en.wikipedia.org/wiki/Continuation-passing_style )?

I doubt they'll want to use that attribute, either.

I don't know. It's more general than the @tailrec, but probably many C and C++ and Java programmers don't even know what it is. But it allows a programming style that in some case is interesting (far cleaner than computed gotos).


In any case, D supports more styles of programming than any other language I can think of. I doubt adding even more will be that helpful.

I think a basic form of pattern matching implemented with the switch construct is a good idea for D.

Bye,
bearophile

Reply via email to