我无法弄清楚如何在[http://hackage.haskell.org/trac/haskell-prime/wiki/DoAndIfThenElse]中提到的简明if-then-else符号工作。这工作, import System.Environment
main = do
args <- getArgs
if (args !! 0) == "hello"
我想编写一个函数,使用getLine读取一些数据,并返回,即一个元组(整数,整数),但使用符号。像这样的东西(当然它不起作用): fun :: (Integer, Integer)
fun = do
a <- read (getLine::Integer)
b <- read (getLine::Integer)
return (a, b)
我必须为此编写自己的
在HaskellWiki's Do notation considered harmful,部分有用的应用程序,我发现: 应当提及的是,有时做需要从你 负担写无聊的事情。 E.g.在 getRight :: Either a b -> Maybe b
getRight y =
do Right x <- y
return x
上为y的case被包括,它调用如果y不是右(
input <- readLn
if (input == 0)
then
putStr "0"
else if (input ==1)
then
putStr "1"
else if (input ==2)
在这种塞纳里奥如何在then或else if使用多个putStr用? 当我试图得到一个错误 Type error in application
*** Ex
一个(一元)计算在Haskell的结果,我可以这样写: token: Parser a -> Parser a
token p = do space
v <- p
space
return v
在F#中,我已经走到这一步: let token = compose {
let! _ = space
let! v = parser
我试图把握Monad的状态,为此我想编写一个monadic代码,用一个线性同余发生器产生一个随机数序列(可能不是很好,但我的目的只是学习State Monad,而不是建立一个好的RNG库)。 发电机就是这个(我想生成的Bool S表示简单的顺序): type Seed = Int
random :: Seed -> (Bool, Seed)
random seed = let (a, c,