繁体   English   中英

关于一小段Haskell代码的建议?

[英]Suggestions on a short piece of Haskell code?

我对Haskell非常陌生,作为一种学习方式(第一个项目),我正在将代码从Tcl移植到Haskell。 该项目是特定于域的查询语言,可通过语义层转换为SQL查询。 现在,由于查询语言的运算符在语言的解析器中受到限制,因此类似的代码在Haskell中似乎比在Tcl中更愚蠢:-)

type MatchOperator = [Char]

getOpJoiner :: MatchOperator -> String
getOpJoiner "!=" = " and "
getOpJoiner "!~" = " and "
getOpJoiner "!~~" = " and "
getOpJoiner _  = " or "  -- In reality, this can only be "=", "~", "~~" or "==" according to the parser

该代码执行了应该做的事情(根据所使用的查询运算符返回适当的SQL语句逻辑联接)​​,但是我确信它可以变得更漂亮。

如果只想减少代码行,请尝试以下操作:

getOpJoiner :: MatchOperator -> String
getOpJoiner x
            | x `elem` ["!=","!~","!~~"] = " and "
            | otherwise = " or "

elem用于检查输入是否与列表中的任何字符串匹配。

此功能将起作用。 但是,由于他提到的原因,我认为最好投资@bheklilr建议的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM