在某处是否存在允许的字符的完整列表,或者是否存在可用于标识符和操作符的规则?haskell运算符允许使用哪些字符?
回答
我在找的是完整的字符列表。根据其他答案,完整列表是;
的Unicode标点符号:
- http://www.fileformat.info/info/unicode/category/Pc/list.htm
- http://www.fileformat.info/info/unicode/category/Pd/list.htm
- http://www.fileformat.info/info/unicode/category/Pe/list.htm
- http://www.fileformat.info/info/unicode/category/Pf/list.htm
- http://www.fileformat.info/info/unicode/category/Pi/list.htm
- http://www.fileformat.info/info/unicode/category/Po/list.htm
- http://www.fileformat.info/info/unicode/category/Ps/list.htm
的Unicode符号:
- http://www.fileformat.info/info/unicode/category/Sc/list.htm
- http://www.fileformat.info/info/unicode/category/Sk/list.htm
- http://www.fileformat.info/info/unicode/category/Sm/list.htm
- http://www.fileformat.info/info/unicode/category/So/list.htm
但是不含以下带有特殊含义的字符在Haskell中:
(),;[]`{}_:"'
算从一个或多个符号的字符所形成的符号...
§2.2限定符号字符为任何的!#$%&*+./<=>[email protected]\^|-~:
或“任何[非ASCII] Unicode符号或标点符号“。
从haskell report,这是允许的符号的语法:
special -> (|) | , | ; | [ | ] | `| { | }
symbol -> ascSymbol | uniSymbol<special | _ | : | " | '>
ascSymbol -> ! | # | $ | % | & | * | + | . |/| < | = | > | ? | @
\ |^| | | - | ~
uniSymbol -> any Unicode symbol or punctuation
所以,符号是ASCII符号或Unicode符号除了不同于special | _ | : | " | '
,其被保留(这里a | b
是指“可以是a
或b
“和a<b>
表示”可能是a
中的所有内容,但b
“除外)。 以下几个段落中,报告给出了Haskell的运营商的完整的定义:
varsym -> (symbol {symbol | :})<reservedop | dashes>
consym -> (: {symbol | :})<reservedop>
reservedop -> .. | : | :: | = | \ | | | <- | -> | @ | ~ | =>
算符号从一个或多个符号的字符形成的,如以上所定义 ,并且是词法区分为两个命名空间 ( 1.4节):
- 以冒号开头的运算符符号是一个构造函数。
- 以任何其他字符开头的运算符符号是普通标识符。
请注意,冒号本身,“:”,仅保留作为 Haskell列表构造函数使用;这使得其处理与其他列表语法的其他 部分一致,例如“[]”和“[a,b]”。
除前缀否定的特殊语法外,所有运算符都是 中缀,但每个中缀运算符可用于部分应用的运算符(请参阅第3.5节)。所有标准的 中缀运算符只是预定义的符号,可能会反弹。
这些日子可能应该引用[haskell2010报告](http://www.haskell.org/onlinereport/haskell2010/haskellch2.html#x7-180002.4)而不是haskell98报告(尽管在这种情况下他们会说同样的事情据我所见)。 –
- 1. @ + id /允许哪些特殊字符?
- 2. 弄清楚VAM中字段允许使用哪些字符:RegexValidator?
- 3. MongoDB字段名称中不允许使用哪些字符?
- 4. iPhone应用程序名称中允许使用哪些字符
- 5. 只允许某些字符
- 6. IDN主机标签中允许使用哪些Unicode字符?
- 7. T-SQL列名中允许使用哪些特殊字符?
- 8. twitter标签中允许使用哪些字符?
- 9. jQuery选择器允许使用哪些字符?
- 10. Google App Engine密钥中允许使用哪些字符?
- 11. 在ftp删除命令中不允许使用哪些字符?
- 12. Android上的文件名允许使用哪些字符?
- 13. django(1.4)密码允许使用哪些字符?
- 14. Noir中的slu What允许使用哪些字符?
- 15. Haskell:=运算符?
- 16. 为什么不允许作为Haskell中缀运算符?
- 17. Oracle允许哪些字符绑定参数占位符?
- 18. Haskell点运算符
- 19. 允许字符和两个运算符的正则表达式
- 20. Haskell中的字符算术运算
- 21. SQL Server varchar字段中允许哪些“特殊”字符?
- 22. C++数组运算符[]不允许?
- 23. 嵌套逻辑&&运算符允许吗?
- 24. 如何使用jQuery指定文本框中允许使用哪些字符?
- 25. 哪些语言允许在标识符中使用空格?
- 26. 表单中不允许使用哪些符号?
- 27. C#UrlEncode但允许某些字符集
- 28. 允许某些字符通过$ _GET?
- 29. 允许某些(丹麦)字符与htmlentities
- 30. 允许并限制一些HTML字符
Upvoted,但有一个警告:运算符名称中允许使用':'* *。如果它是第一个字符,那么运算符命名一个构造函数,否则它将函数命名为正常。 – dave4420
我不知道! –
这绝对是疯了!使用任何Unicode符号是可能的,但很不幸,它们通常很难在当前键盘上输入。 – Qqwy