我一直在学习一些Haskell并编写非常简单的程序。我想创建一个函数,它将返回给定位置的元素。这是我试图做的 -
elempos::Int->[a]->a
elempos n (b:_)=head (drop n (b:_) )
但是当我在GHCi编辑器中加载Test.hs文件时,我收到此错误。
Pattern syntax in expression context: _
它表示失败,模块加载:无。 因为我对这门语言很陌生,所以我真的不知道错误是什么(目前在第4章了解你是一个haskell)。谁能告诉我这里有什么问题?
答案 0 :(得分:11)
_
仅在模式内部有效,您尝试在表达式中使用它:head (drop n (b : _))
。既然你真的不需要分解列表,而你确实需要尾部,那么解决方案就是:
elempos n xs = head (drop n xs)