gpt4 book ai didi

haskell - 为什么haskell中函数名重复? (新手)

转载 作者:行者123 更新时间:2023-12-02 16:33:12 27 4
gpt4 key购买 nike

为什么函数名重复

示例:

lucky :: (Integral a) => a -> String  
lucky 7 = "LUCKY NUMBER SEVEN!"
lucky x = "Sorry, you're out of luck, pal!"

什么时候不应该重复函数名称?它的含义是什么?

谢谢

最佳答案

您所看到的是正在运行的模式匹配。

我将向您展示另一个例子:

test 1 = "one"
test 2 = "two"
test 3 = "three"

ghci 中的演示:

ghci> test 1
"one"
ghci> test 2
"two"
ghci> test 3
"three"
ghci> test 4
"*** Exception: Non-exhaustive patterns in function test

所以,当你调用任何函数时,运行时系统都会尝试匹配具有定义函数的输入。因此,调用 test 3 将最初检查 test 1 ,由于 1 不等于 3,因此它将继续下一个定义。同样,由于 2 不等于 3,它将移至下一个定义。在下一个定义中,由于 3 是等于 3 它将返回 "two" 字符串。当你尝试模式匹配一​​些根本不存在的东西,程序抛出异常。

关于haskell - 为什么haskell中函数名重复? (新手),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22938348/

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