[Haskell-cafe] Rewrite this imperative in FP way

Yves Parès yves.pares at gmail.com
Sun Feb 5 16:39:46 CET 2012


> For instance your Eq instance could have been written
> x == y = (==) `on` (fst . getTuple)

Sorry, wrong arity:
(==) = (==) `on` (fst . getTuple)

Okay for the imperative code.

2012/2/5 Yves Parès <yves.pares at gmail.com>

> Concerning your first solution, I don't understand why you redefine Eq but
> not Ord instance. Ord will still work by comparing the tuples and not the
> first elements of said tuples.
> Plus the good news is you don't have to do this: just use regular tuples
> and use sort*By *or group*By *functions from Data.List with the 'on'
> function from Data.Function.
> For instance your Eq instance could have been written
> x == y = (==) `on` (fst . getTuple)
>
> With regular tuples you can write "sortBy (compare `on` fst)".
>
>
> Plus can you rewrite your original imperative algorithm with the right
> variable names? You're using a 'd' array that's not been defined.
>
>
> 2012/2/5 Haisheng Wu <freizl at gmail.com>
>
>> a = [1,1,1,1]
>> b = [0,1,2,3]
>> d = [0,0,0,0]
>>
>> for i in b:
>>   for j in c:
>>     if (i+j)<3:
>>       d[i+j] += a[i]
>>
>> My just work implementation in Haskell
>> http://hpaste.org/57452
>>
>> Another people implementation in Haskell with Monad and it turns out
>> complex and very imperatively.
>> http://hpaste.org/57358
>>
>> Do you have any cool solution in FP way?
>>
>> Thanks.
>> -Simon
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20120205/b17a8b31/attachment.htm>


More information about the Haskell-Cafe mailing list