Software Assurance Reference Dataset

Andrei Alexandrescu via Digitalmars-d digitalmars-d at puremagic.com
Tue Jul 22 08:49:24 PDT 2014


On 7/21/14, 3:22 PM, Timon Gehr wrote:
> On 07/21/2014 06:40 AM, Andrei Alexandrescu wrote:
>> On 7/20/14, 8:15 PM, Timon Gehr wrote:
>>> 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"
>>
>> And that doesn't look awkward at all :o). -- Andrei
>>
>>
>
> Indeed.

Code sucks. It's its own destruction. -- Andrei



More information about the Digitalmars-d mailing list