小编Mem*_*emo的帖子

将函数的输出作为Haskell中另一个函数的输入传递

如何将函数的输出作为另一个函数的输入传递.

例如,我有这两个功能

collatz :: (Integral a) => a -> [a]
collatz 1 = [1]  
collatz n  
    |even n = n:collatz (n `div` 2)  
    |odd n = n:collatz (n*3 + 1) 
Run Code Online (Sandbox Code Playgroud)

而我的另一个功能

length' [] = 0
length' (x:xs) = 1 + length' xs
Run Code Online (Sandbox Code Playgroud)

我想计算列表的长度,这是从我的collat​​z函数输出的.

最后我想完全计算这个

numLongChains :: Int  
numLongChains = length (filter isLong (map collatz [1..100]))  
    where isLong xs = length xs > 15  
Run Code Online (Sandbox Code Playgroud)

但一步一步.

haskell input output

3
推荐指数
1
解决办法
269
查看次数

递归IO出错

为什么这段代码不起作用?

xMal 0 _ = return ()
xMal n text =
 do
  text
    xMal (n-1) text
main = xMal (putStrLn t <- getLine) (n <- readLn)
Run Code Online (Sandbox Code Playgroud)

我希望能够得到一个数字和字符串作为输入.

io recursion haskell

-1
推荐指数
1
解决办法
104
查看次数

标签 统计

haskell ×2

input ×1

io ×1

output ×1

recursion ×1