我想删除
我在谷歌和stackoverflow上搜索过,但没有找到相关信息。(我确实找到了一个旧帖子,解释了为什么在 Haskell 中包含了
我的 IDE 是 Leksah,如果可以删除这些关键字,则还可以设置一个选项来将
我已经尝试过使用
综合目前的回复:
- 使用 GHC 的
if ... then ... else ...
关键词,因为我正在将一种语言/DSL 嵌入到 Haskell 中。在许多领域中,if
、then
和 else
表达了很多含义,如果我能重新定义它们(或者将它们保留未定义)以反映语言/领域的本质,那就太好了。我在谷歌和stackoverflow上搜索过,但没有找到相关信息。(我确实找到了一个旧帖子,解释了为什么在 Haskell 中包含了
if ... then ... else ...
这些关键字。)我的 IDE 是 Leksah,如果可以删除这些关键字,则还可以设置一个选项来将
if ... then ... else ...
关键字更改回其正常字体/颜色/不加粗状态。我已经尝试过使用
if'
等类似命名约定来代替 if
等关键字,但感觉不太好,特别是当我想要定义 if
和 if'
时,必须定义 if'
和 if''
或 if1
和 if2
。同时出现 if'
和 if
也可能会产生混淆。在我的情况下,DSL 的用户是 Haskell 程序员,所以这种困惑并不是很严重,但我认为在其他情况下可能会有所帮助。综合目前的回复:
- 使用 GHC 的
RebindableSyntax
扩展。这不如删除关键字通用:Haskell 的 if-then-else 语法将保留。(Frerich Raabe)
- 解决方法:通过使用 data Conditional b a = If b (Then a) (Else a)
来使用非常相似的单词/名称(仅适用于某些上下文)。(C. A. McCann)如果RebindableSyntax
是一个相对较新的功能,那么很可能找不到一种更普遍的方法,至少在下一个GHC版本之前不会有。
data Conditional b a = If b (Then a) (Else a)
。 - C. A. McCann