表达式上下文中的Haskell- Pattern语法:_

时间:2012-05-22 08:55:48

标签: syntax haskell

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

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

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

Pattern syntax in expression context: _

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

1 个答案:

答案 0 :(得分:11)

_仅在模式内部有效,您尝试在表达式中使用它:head (drop n (b : _))。既然你真的不需要分解列表,而你确实需要尾部,那么解决方案就是:

elempos n xs = head (drop n xs)