【发布时间】:2018-10-25 19:11:08
【问题描述】:
我有一个以 n-1 方式拆分列表的函数。拆分后,我想以递归方式对拆分的每个项目执行操作。我无法弄清楚如何进行这种递归,因为我是 Haskel 的新手并且无法理解如何在 Haskell 中使用值
recur(list)= do [splitAt n list | n <- [1..((length list)-1)]]
print say each first element of split( say [1,2] it should print [1] )
recur(second element of list)
我想知道如何使用 split 的输出并继续下一步,因为 Haskell 我们不能使用变量声明并使用该变量。
【问题讨论】:
-
那么,你想在
splitAt的输出上映射一个函数? -
好的。首先,do 表示法与单子有关。一般来说,它并不是设计为haskell 的命令式接口。所以作为一个建议,在你学会如何思考功能之前忘记它的存在。您的问题可以使用来自
Data.List库的函数map和inits来解决。试一试,解决不了就回来 -
到目前为止你尝试过什么?你以前在列表上写过递归函数吗?在哈斯克尔?如果没有,您编写的哪些 Haskell 代码可能是一个起点? (列表上的非递归函数?使用
case的函数?Int上的函数?)
标签: haskell