gpt4 book ai didi

haskell - 函数变量和应用中的 ()

转载 作者:行者123 更新时间:2023-12-02 11:06:09 25 4
gpt4 key购买 nike

Types and Functions lecture介绍功能:

f44 :: () -> Integer
f44 () = 44

我输入了以下内容:

ghci> let f () = 5
ghci> f ()
5

但是,我对 let f () 中的 () 感到困惑。通常,作为初学者,我见过函数名称后面有一个不可变变量,即 f

() 列在 let f ... 之后时,它的名称是什么?如果在函数应用中使用f()呢?

最佳答案

“()”通常发音为“unit”。

在 Haskell 中,它既是类型的名称,如

f44 :: () -> Integer

以及该类型唯一存在的值的名称,如

f44 () = 44

用于模式匹配的地方。

这个看起来更熟悉的定义将提供等效但更详细的类型:

data Unit = Unit
f45 :: Unit -> Integer
f45 Unit = 45

没有什么可以阻止您将 () 绑定(bind)到名称,就像绑定(bind)任何其他值一样:

Prelude> let f () = 5
Prelude> :t f
f :: Num a => () -> a
Prelude> let name = ()
Prelude> :t name
name :: ()
Prelude> name
()
Prelude> f name
5

关于haskell - 函数变量和应用中的 (),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29970012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com