我使用过符号的两种语言是Ruby和Erlang,我始终觉得它们非常有用。
Haskell确实有代数数据类型,但我仍然认为符号会非常方便。一个立即想到的用途是,由于符号同构于整数,您可以在需要整数或字符串“主键”的地方使用它们。
原子的语法糖可能很小 - :something或<something>是一个原子。所有原子都是Atom类型的实例,Atom派生自Show和Eq。例如,您可以将其用于更具描述性的错误代码。
type ErrorCode = Atom
type Message = String
data Error = Error ErrorCode Message
loginError = Error :redirect "Please login first"
在这种情况下,使用“:redirect”比使用字符串(“redirect”)更有效,比使用整数(404)更容易理解。
此好处可能看起来微不足道,但我认为将原子作为语言特性(或至少作为GHC扩展)值得添加。
那么,为什么没有将符号添加到语言中呢?或者我想错了吗?