5

我一直在学习一些 Haskell 并编写非常简单的程序。我想做一个函数来返回给定位置的元素。这就是我试图做的 -

elempos::Int->[a]->a
elempos n (b:_)=head (drop n (b:_) )

但是当我在 GHCi 编辑器中加载 Test.hs 文件时出现此错误。

Pattern syntax in expression context: _

它说失败,加载模块:无。因为我对这门语言很陌生,所以我真的不知道错误是什么(目前在第 4 章学习你的 Haskell)。谁能告诉我这里有什么问题?

4

1 回答 1

11

_仅在模式内部有效,您试图在表达式中使用它:head (drop n (b : _))。由于您实际上并不需要分解列表,并且确实需要尾部,因此解决方案是:

elempos n xs = head (drop n xs)
于 2012-05-22T09:03:37.670 回答