Reddit 上的一个人让我注意到了这段代码:
main = do
let ns = [print 1, print 2, print 3]
sequence_ ns
sequence_ $ reverse ns
sequence_ $ tail ns ++ [head ns]
head ns
这里发生的事情是我们有一系列操作,我们可以用它们来做一些事情,比如反向或获取它的尾部或头部。
惊人的。
我想做的是进入单个元素并永久改变它们。例如,我希望能够做这样的事情:
ns !! 0
并得到类似 [print, 1] 的内容,然后将最后一个元素更改为 3.14,以便函数打印 3.14。
在 Haskell 中是否有可能,还是我应该回到 LISP?
一个重要的编辑:我有点失误。我了解我需要创建一个新列表。是否可以获取作为列表一部分的函数的参数?我想要的是能够从它们的标识符/参数组合函数,并且还能够在评估之前将函数分解为标识符/参数。