这个Haskell unicode变量名有什么问题?

tba*_*tba 6 unicode haskell

这段代码怎么了?

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.

Boy*_*Jr. 8

大写Unicode字母在Unicode字符类别Letter,大写[Lu]中.

小写Unicode字母在Unicode字符类别Letter,Lowercase [Ll]中.

MODIFIER LETTER CAPITAL T是Unicode字符类别Letter,Modifier [Lm].

我倾向于坚持ASCII,所以我可能只是使用一个名称,xTrans或者x',取决于它在范围内的行数.


lef*_*out 8

不在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,因为它有助于提高可读性,但除非你已经使用它为转置指定了其他含义,否则它应该很好.