我读使用下面的例子(我会有点概括)的教程:在Haskell中解构元组时,元素可以在哪里使用?
f :: Foo -> (Int, Foo)
...
fList :: Foo -> [Int]
fList foo = x : fList bar
where
(x, bar) = f foo
我的问题在于,它似乎可以参考x
和bar
,按名称,外面的事实获得它们的元组。如果我的猜测是正确的,这似乎就像解构其他语言的参数列表一样。 (换句话说,我不必做以下:)
fList foo = (fst tuple) : fList (snd tuple)
where
tuple = f foo
我对这种行为是正确的吗?我从来没有在我读过的教程/书籍中看到过它的提及。有人能指点我关于这个问题的更多信息吗?
编辑:可以用类似的方式解构任何东西(列表,数组等),或者只能用元组来做这件事吗?
如果您最终没有在该教程中遇到模式匹配的解释,您可能需要对Haskell进行更全面的说明。模式匹配对于该语言来说是基本和重要的。 – 2009-01-15 15:27:26