gpt4 book ai didi

types - 为什么 Elm 使用 '++' 运算符来连接字符串?

转载 作者:行者123 更新时间:2023-12-04 09:05:02 26 4
gpt4 key购买 nike

我正在学习 Elm,我发现它有很多吸引人的地方,比如它的优雅和简单。然而,我觉得令人困惑的一个方面是它使用“++”来连接字符串。例如:

> "hello" ++ " world"
"hello world"

加法以您期望的方式工作。
> 2 + 3 + 9
14

大多数高级语言(例如 C#/Java/JavaScript/Python)使用单个加号“+”以类似的方式将多个数字相加来连接字符串。它看起来更直观,因为在连接字符串(如对数字求和)时有一定的一致性。

有谁知道在这种情况下使用++ 而不是 + 的设计决策背后的逻辑?

最佳答案

Elm 允许您定义多态函数。

参数多态是指函数可以应用于任何类型的元素:

f : (a, b) -> (b, a)
f (x, y) = (y, x)

Ad-hoc 多态性是指一个函数可以应用于某些类型的元素:
g : appendable -> appendable -> appendable -> appendable
g x y z = x ++ y ++ z

h : number -> number -> number
h x y = (x + 2) * y

类型变量 numberappendable是特殊的,因为它们代表所有 Elm 类型的子集。 ListStringappendable类型同时 FloatInt是数字类型。

理论上可以改为定义 hasPlus类型变量将包括 List , String , FloatInt ,但是在定义多态函数时,您需要注意 x + y 是可能的不同于 y + x如果你真的在考虑数字,那将是一个相当大的负担......

关于types - 为什么 Elm 使用 '++' 运算符来连接字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42416602/

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