我正在尝试拿起一些Haskell,而且我在敬畏与迷恋之间交替。对我来说真正疏远的事情之一,就像这似乎是微不足道的,是模式匹配成语(x:xs)
。这些变量名称来自哪里?它们可以是任何东西 - (kernel:cob)
,(spam:eggs)
(稍稍倾斜我的手),或 - 最明智的,在我的脑海中,(h:t)
,代表'头'和'尾' 。
我认为x
前缀对于指示两个项目来自同一个列表非常有用,因此如果您感觉特别简洁,那么(xh:xt)
甚至只是(x:xt)
。但为什么 s ?这是什么意思?它从哪里来的?我觉得,此刻,知道会帮助我应对我的困惑。
也许我正在以错误的方式思考这个问题;请随时告诉我。
答案 0 :(得分:43)
x
是数学中常见的变量名。 xs
是x
的复数形式(得到它?)。在列表模式匹配中,x
是一个元素,xs
(通常)是几个。
答案 1 :(得分:29)
我们可以将x
的起源更进一步,当然:-)FrançoisViète(1540-1603)出版了一本名为 In artem的书
analyticem isagoge (“
“分析艺术”,这是第一部系统地使用字母来表示数字的作品。
编辑:下面的Porges指出了Cajori非常酷的数学符号历史。令我惊喜的是,整个作品可在线获取:http://archive.org/details/historyofmathema031756mbp
答案 2 :(得分:4)
x
是阿拉伯语单词شيء的欧洲转录(发音为'chi',或'chaï'。或'tchi',取决于重音)。这个词的意思是“东西”或“某事物”,并被第一批阿拉伯和伊朗数学家用作在数学表达式中指定未知或未固定值的符号。
回到这些时候,翻译人员和欧洲数学家可能会认为'x'是最接近这个未知符号的近似值。