我如何取 [[char]] 的第一个元素

gui*_*eur -1 haskell

我是新手,Haskell我正在尝试拥有elem我的第一个[[char]]

我试过这个:(在我的主要)

    tmpList = recomposeNumber (words argss) []
                det = test tmpList

Run Code Online (Sandbox Code Playgroud)

tmpList 是一个 [[Char]]

我的tmpList是:

["12","+","1"]
Run Code Online (Sandbox Code Playgroud)

我尝试了类似的事情,但我不知道该怎么做

test:: [[Char]] -> [[Char]]
test [x:xs]  = x
Run Code Online (Sandbox Code Playgroud)

我不知道它是否可能,但我想返回一个 integer

我想用测试函数返回“12”,但我迷路了

Enr*_*lis 5

可能你想要这个:

test :: [[Char]] -> Int
test (x:xs) = read x :: Int -- :: Int is not necessary
Run Code Online (Sandbox Code Playgroud)

所以,参考你的尝试,错误是:

  • 错误的签名:您想返回一个Int,只是Int用作结果,而不是[[Char]](顺便说一下,与 完全相同[String]
  • 模式匹配的错误符号:您需要圆括号,而不是方括号
  • 不完整的实现:如果你想Int从 a得到 an String,你需要一个可以做到的函数 ( read)

正如评论中所建议的,类型注释:: Int不是必需的,因为签名[[Char]] -> Int暗示了它。

由于我试图加快速度,我在 中对其进行了测试,在ghci那里您不能只输入一个独立的签名,因此我不得不在那里使用类型注释,并且在此处粘贴代码时忘记将其删除。

作为旁注,您可能对Learn You a Haskell for Great Good感兴趣。