小编gen*_*age的帖子

C++中缀为逻辑条件的前缀转换

我想用C++评估一个表达式.为了评估它,我希望表达式转换为前缀格式.

这是一个例子

 wstring expression = "Feature1 And Feature2";
Run Code Online (Sandbox Code Playgroud)

这是可能的方法.

 expression = "Feature1 And (Feature2 Or Feature3)";

 expression = "Not Feature1 Or Feature3";
Run Code Online (Sandbox Code Playgroud)

这里,或者,不是保留字和括号(" ( ",))用于范围

没有更高的优先权

设置为Not的优先级

或者设置为And的下一个优先级

WHITE SPACE用于分隔符.Expression 没有其他元素,如TAB,NEWLINE

并不需要算术表达式.我可以做评估,但有人可以帮助我将字符串转换为前缀表示法吗?

c++ expression infix-notation prefix

10
推荐指数
1
解决办法
2872
查看次数

使用案例与函数进行模式匹配

说我想定义一个函数

applyTwice :: (Int -> Int) -> Int -> Int
applyTwice f x = case f x of
                   0 -> 0
                   y -> f y
Run Code Online (Sandbox Code Playgroud)

我也可以定义相同的功能

applyTwice f x = g (f x)
  where g 0 = 0
        g y = f y
Run Code Online (Sandbox Code Playgroud)

那些都会做同样的事情,也许有时候其中一个或更有可读性,但两者之间是否有任何真正的区别.另一个只是一个语法糖吗?是否有奇怪的情况,一个工作,但另一个不工作?

我能想到的唯一可能的差异是,在第二个函数中,如果我觉得它可以给出ga类型签名,并且如果我想模式匹配多个变量,使用辅助函数可能会使我从嵌套的case语句中省略.

haskell

9
推荐指数
1
解决办法
467
查看次数

标签 统计

c++ ×1

expression ×1

haskell ×1

infix-notation ×1

prefix ×1