Haskell,列表不会保存变量?

Fas*_*ger -1 haskell list

我有一个小问题,我对Haskell很新,我不明白为什么列表在追加20之后是空的.

*Main> list
[]
*Main> add_element
[20]
*Main> list
[]
*Main> 
Run Code Online (Sandbox Code Playgroud)

我的代码:

list = []

add_element = list++[20]
Run Code Online (Sandbox Code Playgroud)

Tho*_*son 8

在Haskell中,变量是不可变的.在你的情况下:

list = []
Run Code Online (Sandbox Code Playgroud)

您已定义一个空列表.

add_element = list ++ [20]
Run Code Online (Sandbox Code Playgroud)

add_element符号不是功能发生变异list.它实际上是一个通过将空列表(list)与单例列表组合而构建的新列表[20].

顶级定义list永远不会是任何东西[].