作者:花神 | 来源:互联网 | 2022-11-20 17:56
是和否,语言扩展是语言实现的一个特性(因此,编译器),这意味着如果您使用Haskell的常见实现,例如GHC,则没有内置方法来添加自定义语言扩展.
但是,除了时间和知识之外,没有什么能阻止你构建自己的Haskell实现,它支持你喜欢的任何疯狂的语言扩展.
根据您的实际需要,模板Haskell可能是您可以使用的解决方案.
1> M. Aroosi..:
是和否,语言扩展是语言实现的一个特性(因此,编译器),这意味着如果您使用Haskell的常见实现,例如GHC,则没有内置方法来添加自定义语言扩展.
但是,除了时间和知识之外,没有什么能阻止你构建自己的Haskell实现,它支持你喜欢的任何疯狂的语言扩展.
根据您的实际需要,模板Haskell可能是您可以使用的解决方案.
另请参阅[源代码插件](https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/extending_ghc.html#source-plugins),最新[GHC 8.6](https:// downloads.haskell.org/~ghc/latest/docs/html/users_guide/8.6.1-notes.html#plugins)
[这里Oleg Grenrus使用源插件](http://oleg.fi/gists/posts/2018-07-06-idiom-brackets-via-source-pluging.html)来解释单个列表`[_]`包围parens`([_])`as [idiom bracket](http://strictlypositive.org/Idiom.pdf)