19得票2回答
在 Haskell 中,':..' 是什么意思?

我正在阅读以下数据类型:data Ne = NVar Id | Ne :.. (Clos Term) | NSplit Ne (Bind (Bind (Clos Term))) | NCase Ne (Clos [(Label, Term)]) | NForce Ne ...

19得票2回答
无法在函数内声明运算符。是Clang的bug还是规范问题?

C语言中比较奇特的一种情况是函数可以在其他函数内部声明,例如: void foo(void) { void bar(void); // Behaves as if this was written above void foo(void) bar(); } 这种情况也出现在C++...

16得票4回答
何时在Scala中使用括号表示中缀符号?

在使用Scala编程时,我越来越多地使用函数式编程。然而,在使用中缀表示法时,很难确定何时需要括号以及何时不需要。 例如,以下代码片段:def caesar(k:Int)(c:Char) = c match { case c if c isLower => ('a'+((c-'...

16得票2回答
如何在OCaml中定义一个中缀(非符号,即非运算符)函数?

OCaml支持在纯文本中定义的中缀函数吗?arg1 `plus` arg2 = arg1 + arg2 谢谢

16得票6回答
使用C语言计算中缀表达式的最简单方法是什么?

假设用户将中缀表达式作为字符串输入?使用C语言计算该表达式的结果最简单的方法是什么?(“最简单”是指最短的方法) 可能的方法是将其转换为后缀表达式,然后使用栈来计算。但这是一个相对较长的过程。是否有使用诸如atoi()或eval()等函数来简化工作的方法?

12得票1回答
为什么 f<$>g<$>x 和 (f.g)<$>x 相等,尽管<$>不是右结合的?

为什么 f &lt;$&gt; g &lt;$&gt; x 等价于 (f . g) &lt;$&gt; x,尽管 &lt;$&gt; 不是右结合的? (这种等价性在 一种常用的习惯语境 中使用普通的 $ 是有效的,但当前的 $ 是右结合的!) &lt;*&gt; 与 &lt;$&gt; 具...

12得票1回答
Haskell. 为什么 :info (:) 会返回两次定义?

我是Haskell的新手。如果我在GHCi (7.10.3)中输入::info (:) 我得到了结果:*** Parser: data [] a = ... | a : [a] -- Defined in ‘GHC.Types’ infixr 5 : data [] a = ... | ...

11得票2回答
为什么Scala在方法是中缀且右关联时会对按名称调用的参数进行评估?

据我理解,方法的 call-by-name 参数在传递给方法时不会被求值,只有当(如果)该参数的值在方法体中被使用时才会被求值。 然而,在下面的例子中,尽管它应该仅是第二种情况的语法变化,但这仅适用于前两次方法调用,而不适用于第三次方法调用!? 为什么第三个方法调用中对参数表达式进行了求值? ...

11得票2回答
我该如何编写Swift中缀函数?

我看过这样的做法,但我就是无法理解它。某些中缀函数似乎神奇地正常工作,而其他一些则无法编译。例如: 如你所见,我的then函数可以像传统函数一样工作,但不能作为中缀函数,然而我的*函数则有相反的问题。有什么诀窍可以使我的then函数成为中缀函数吗? 附带问题:为什么我的*函数不能作为传...

11得票1回答
如何在lambda中为运算符赋予优先级?

例如,这个无法通过类型检查。\cons nil -&gt; 5 `cons` 3 `cons` nil 也不会这样\(#) -&gt; 5 # 3 # nil 虽然这两个都会\cons nil -&gt; 5 `cons` nil \(#) nil -&gt; 5 # nil 有没有一种方法可...