这段代码怎么了?
Prelude> let x? = "abc"
<interactive>:10:6: lexical error at character '\7488'
Run Code Online (Sandbox Code Playgroud)
根据我对Haskell 2010报告的阅读,任何大写或小写的Unicode字母都应该在变量名的末尾有效.是否?字符(修饰符字母大写字母T),没有资格作为一个大写的Unicode信?
是否有更好的角色来表示向量的转置?因为我正在评估一个密集的数学公式,所以我想保持简洁.
我正在运行GHC 7.8.3.
大写Unicode字母在Unicode字符类别Letter,大写[Lu]中.
小写Unicode字母在Unicode字符类别Letter,Lowercase [Ll]中.
MODIFIER LETTER CAPITAL T是Unicode字符类别Letter,Modifier [Lm].
我倾向于坚持ASCII,所以我可能只是使用一个名称,xTrans或者x',取决于它在范围内的行数.
不在ANY类别中的字符在Haskell程序中无效,并且应该导致错误.
哪里
ANY ? graphic | whitechar
graphic ? small | large | symbol | digit | special | " | '
small ? ascSmall | uniSmall | _<br>
ascSmall ? a | b | … | z<br>
uniSmall ? any Unicode lowercase letter
...
uniDigit ? any Unicode decimal digit
...
Run Code Online (Sandbox Code Playgroud)
修饰符字母?根本不是合法的Haskell.(与子号或上标号不同- 它们在数字中,其他类别因此a?被视为非常类似a1.)
我喜欢使用非ASCII Unicode,因为它有助于提高可读性,但除非你已经使用它为转置指定了其他含义,否则它应该很好.