如何在Clojure中做除法功能?
我正在执行一个如何在Clojure中做除法功能?,clojure,Clojure,我正在执行一个除法?函数,该函数将除数x和数字n作为输入。如果x除以n,则函数应返回true,否则返回false 目前,这个函数运行良好,但我需要通过添加一个带有filter方法的匿名函数来进一步扭曲它,并且参数的顺序必须正确(xn),而不是(nx) 如有任何想法,将不胜感激: 分割?: (defn Divides? [x n] (zero? (mod n x))) (println "Divides"( Divides? 2 10)) //output : true 听起来你只是想翻转一
除法?
函数,该函数将除数x和数字n作为输入。如果x除以n,则函数应返回true,否则返回false
目前,这个函数运行良好,但我需要通过添加一个带有filter方法的匿名函数来进一步扭曲它,并且参数的顺序必须正确(xn)
,而不是(nx)
如有任何想法,将不胜感激:
分割?:
(defn Divides? [x n]
(zero? (mod n x)))
(println "Divides"( Divides? 2 10))
//output : true
听起来你只是想翻转一个函数的参数,在这种情况下。一旦能够翻转函数接受的参数,就不需要重新实现任何东西,而是执行以下操作:
(defn除以?[xn]
(零(模nx)))
(定义翻转[f]
(fn[&xs]
(应用f(反向xs)))
((翻转分割?)8 4)
不太清楚,在当前函数中,参数已经是xn
而不是nx
。另外,您将如何将其与过滤器一起使用?名称x
和n
没有什么神奇之处。任何不同的名称都可以。要使它们按正确的顺序排列,只需在第一行或第二行交换它们。过滤是一个单独的问题,您没有明确说明。我不允许更改x
和n
的顺序,因此我必须找出如何以正确的顺序将参数传递给除法
函数。因此,我需要使用过滤方法,但不知道如何使用!如果参数的顺序正确,则可以使用partial,但最终,定义一个非fn非常简单:#(除%42)