Monads/List monad: Difference between revisions
Content added Content deleted
(Add Factor) |
|||
Line 169: | Line 169: | ||
→ (List "1" "-8" "27" "-125") |
→ (List "1" "-8" "27" "-125") |
||
</lang> |
</lang> |
||
=={{header|Factor}}== |
|||
Factor comes with an implementation of Haskell-style monads in the <code>monads</code> vocabulary. |
|||
<lang factor>USING: kernel math monads prettyprint ; |
|||
FROM: monads => do ; |
|||
{ 3 4 5 } |
|||
>>= [ 1 + array-monad return ] swap call |
|||
>>= [ 2 * array-monad return ] swap call .</lang> |
|||
Or: |
|||
<lang factor>{ 3 4 5 } |
|||
[ 1 + array-monad return ] bind |
|||
[ 2 * array-monad return ] bind .</lang> |
|||
Or: |
|||
<lang factor>{ |
|||
[ { 3 4 5 } ] |
|||
[ 1 + array-monad return ] |
|||
[ 2 * array-monad return ] |
|||
} do .</lang> |
|||
{{out}} |
|||
<pre> |
|||
{ 8 10 12 } |
|||
</pre> |
|||
=={{header|Go}}== |
=={{header|Go}}== |