Software Assurance Reference Dataset
Timon Gehr via Digitalmars-d
digitalmars-d at puremagic.com
Sun Jul 20 20:15:35 PDT 2014
On 07/20/2014 10:50 PM, Walter Bright wrote:
> On 7/20/2014 3:27 AM, Dmitry Olshansky wrote:
>> Functional programming is full of simple recursion and it would be
>> nice not to
>> stack overflow in debug builds.
>
> Traditional FP languages don't have loops, and so must do recursion.
Uh...
> D has loops, even in pure functions,
So does Haskell.
import Control.Monad
import Control.Monad.ST
import Data.STRef
factorial :: Integer -> Integer
factorial n = runST $ do
r <- newSTRef 1
forM_ [1..n] $ \i->
modifySTRef r (*i)
readSTRef r
main = print $ factorial 5 -- "120"
> there's no reason not to use them.
> ...
But of course there are reasons to use tail calls.
More information about the Digitalmars-d
mailing list