小编due*_*ert的帖子

Haskell 弱头范式

我被一些烦人的事情绊倒了。我知道 haskell 与弱头部范式 (WHNF) 一起工作,我知道这是什么。将以下代码输入 ghci(我正在使用命令 :sprint 将表达式简化为 WHNF,据我所知。):

let intlist = [[1,2],[2,3]]
:sprint intlist
Run Code Online (Sandbox Code Playgroud)

intlist = _这使得完全意义的我。

let stringlist = ["hi","there"]
:sprint stringlist 
Run Code Online (Sandbox Code Playgroud)

stringlist = [_,_] 这个已经让我困惑。但是之后:

let charlist = [['h','i'], ['t','h','e','r','e']]
:sprint charlist
Run Code Online (Sandbox Code Playgroud)

出人意料地给出 charlist = ["hi","there"]

据我了解 Haskell,字符串只不过是字符列表,这似乎是通过检查类型"hi" :: [Char]['h','i'] :: [Char].

我很困惑,因为根据我的理解,上面的所有三个示例或多或少都相同(列表列表),因此应该减少到相同的 WHNF,即 _。我错过了什么?

谢谢

haskell functional-programming reduction ghci weak-head-normal-form

9
推荐指数
1
解决办法
179
查看次数