|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- This file:
-- http://angg.twu.net/HASKELL/DoNotation1.hs.html
-- http://angg.twu.net/HASKELL/DoNotation1.hs
-- (find-angg "HASKELL/DoNotation1.hs")
-- Author: Eduardo Ochs <eduardoochs@gmail.com>
--
-- (defun e () (interactive) (find-angg "HASKELL/DoNotation1.hs"))
-- (find-books "__comp/__comp.el" "haskell-hutton")
-- (find-books "__comp/__comp.el" "haskell-hutton" "do notation")
-- (find-huttonbookpage 196 "m1 >>= \\x1 ->")
-- (find-huttonbooktext 196 "m1 >>= \\x1 ->")
-- (find-angg "HASKELL/Comprehensions1.hs")
{-
do va <- tma
vb <- tmb
vc <- tmc
tmd
tma >>= \va ->
tmb >>= \vb ->
tmc >>= \vc ->
tmd
tma >>= \va -> tmb >>= \vb -> tmc >>= \vc -> tmd
===== === ===== === ===== ==== =====
::m a ::a ::m b ::b ::m c :: c ::m d
==============
::c->m d
========================
::m d
================================
::b->m d
==========================================
::m d
==================================================
::a->m d
============================================================
::m d
-}
-- (find-es "haskell" "list-comprehensions")
{-
* (eepitch-ghci)
* (eepitch-kill)
* (eepitch-ghci)
:load Comprehensions1.hs
[10*x+y | x <- [1..3], y <- [1..x]]
[10*x+y | x <- [1..3], y <- [1..x], x+y<6]
do x <- [1..3]; y <- [1..x]; return (x,y)
do x <- [1..3]; y <- [1..x]; return (10*x+y)
do x <- [1..3]; y <- [1..x]; guard (x+y<=6); return (10*x+y)
do x <- [1..3]; y <- [1..x]; _ <- guard (x+y<=6); return (10*x+y)
[1..3] >>= \x -> [1..x] >>= \y -> return (10*x+y)
[1..3] >>= \x -> [1..x] >>= \y -> guard (x+y<=6) >>= \_ -> return (10*x+y)
:t [1..3] >>= \x -> [1..x] >>= \y -> guard (x+y<=6) >>= \_ -> return (10*x+y)
:t [1..3]
:t \x -> [1..x] >>= \y -> guard (x+y<=6) >>= \_ -> return (10*x+y)
:t \x -> \y -> guard (x+y<=6) >>= \_ -> return (10*x+y)
:t return
-}
-- Local Variables:
-- coding: utf-8-unix
-- End: