如何在Haskell中定义自己的自定义LANGUAGE扩展?

Vig*_*jan 3 haskell

{-# LANGUAGE CustomHaskellExtension #-}
Run Code Online (Sandbox Code Playgroud)

有没有办法定义自己的自定义Haskell语言扩展?

如果是,请您指出我的文档或教程.

M. *_*osi 7

是和否,语言扩展是语言实现的一个特性(因此,编译器),这意味着如果您使用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) (7认同)
  • [这里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) (3认同)