Haskell 函数名称中允许使用哪些字符?

2024-03-17

函数的有效名称是什么?

Examples

-- works
let µ x = x * x  
let ö x = x * x

-- doesn't work  
let € x = x * x  
let § x = x * x

我不确定,但我的预感是 Haskell 不允许 Unicode 函数名称,是吗? (Unicode 就像http://www.cse.chalmers.se/~nad/listings/lib-0.4/Data.List.html http://www.cse.chalmers.se/~nad/listings/lib-0.4/Data.List.html)


From 哈斯克尔报告 http://www.haskell.org/onlinereport/lexemes.html:

Haskell 使用 Unicode 字符集。然而,源程序目前偏向于 Haskell 早期版本中使用的 ASCII 字符集。

最新版本的 GHC 似乎可以很好地支持 unicode(至少以 UTF-8 的形式):

Prelude> let пять=5; два=2; умножить=(*); на=id in пять `умножить` на два
10

(如果你想知道的话,“пять `умножить` на два”在俄语中的意思是“五‘乘以二’”。)

您的示例不起作用,因为这些字符是“符号”,可以在中缀运算符中使用,但不能在函数名称中使用。请参阅报告中的“uniSymbol”类别。

Prelude> let x € y = x * y in 2 € 5
10
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Haskell 函数名称中允许使用哪些字符? 的相关文章

随机推荐