Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure-Curring技术细节_Clojure_Currying - Fatal编程技术网

Clojure-Curring技术细节

Clojure-Curring技术细节,clojure,currying,Clojure,Currying,我知道clojure没有对咖喱的内置支持。但是我想理解为什么这个代码失败的技术细节--> 在repl--> 有人能解释一下这里发生了什么事吗?为什么c不是由三角形函数的面积计算的值 非常感谢,Alex这是因为这里有双函数调用: ((area-of-triangle a b c)) 您正在将函数三角形区域的结果作为函数调用。这是因为这里有双函数调用: ((area-of-triangle a b c)) 您正在将函数三角形区域的结果作为函数调用。您有一组额外的括号: (fn [c] ((are

我知道clojure没有对咖喱的内置支持。但是我想理解为什么这个代码失败的技术细节-->

在repl-->

有人能解释一下这里发生了什么事吗?为什么c不是由三角形函数的面积计算的值


非常感谢,Alex这是因为这里有双函数调用:

((area-of-triangle a b c))

您正在将函数
三角形区域的结果作为函数调用。

这是因为这里有双函数调用:

((area-of-triangle a b c))

您正在将函数
三角形区域的结果作为函数调用。

您有一组额外的括号:

(fn [c] ((area-of-triangle a b c)))
        ^
这是一个问题,因为
三角形的面积计算为一个数字。假设评估值为10,则您有:

(fn [c] (10))

这没有任何意义,因为10是不可调用的

您还有一组额外的括号:

(fn [c] ((area-of-triangle a b c)))
        ^
这是一个问题,因为
三角形的面积计算为一个数字。假设评估值为10,则您有:

(fn [c] (10))
这没有任何意义,因为10是不可调用的

这里有两件事:

  • 周围有额外的括号(三角形a b c的区域)
  • 对于咖喱,您可以使用功能
  • e、 g:

    这里有两件事:

  • 周围有额外的括号(三角形a b c的区域)
  • 对于咖喱,您可以使用功能
  • e、 g:


    没有部分函数,这是不可能的?我只是认为这是最惯用的方法,不是唯一的方法不,没有部分是不可能的。@Alex好吧,没有
    partial
    实际上是可能的,因为
    partial
    不是“魔法”;只是。只是因为它很好地完成了预期的目的(除了过于冗长),所以再发明轮子没有任何意义。你是对的。我说过,没有部分功能是不可能的,没有部分功能是不可能的?我只是认为这是最惯用的方法,不是唯一的方法不,没有部分是不可能的。@Alex好吧,没有
    partial
    实际上是可能的,因为
    partial
    不是“魔法”;只是。只是因为它很好地完成了预期的目的(除了过于冗长),所以再发明轮子没有任何意义。你是对的。我说过,如果没有部分功能,不重新发明轮子,这是不可能的。为了澄清任何混淆,这个问题中的代码工作得很好,最后一行只是有一对多余的括号。错误与咖喱或
    部分
    无关,您在
    ((inc 1.0))
    中会得到相同的示例。为了消除任何混淆,此问题中的代码工作正常,最后一行有一对多余的括号。该错误与咖喱或
    部分
    无关,您在
    ((inc1.0))
    中会得到相同的示例。