相关疑难解决方法(0)

clojure 是否具有 C# 等效的 yield?

我正在阅读电子书《Scala 和 Clojure 中的函数式编程模式》,并找到了导致此问题的代码示例。

这段代码旨在比较两个 Person 对象。比较算法是 - 首先比较它们的 FName,如果相等则比较它们的 LName,如果相等则比较它们的 MName。

书中给出的 Clojure 代码(或多或少)

(def person1 {:fname "John" :mname "Q" :lname "Doe"})
(def person2 {:fname "Jane" :mname "P" :lname "Doe"})

(defn fname-compare [p1 p2] 
  (do 
    (println "Comparing fname")
    (compare (:fname p1) (:fname p2))))

(defn lname-compare [p1 p2] 
  (do 
    (println "Comparing lname")
    (compare (:lname p1) (:lname p2))))

(defn mname-compare [p1 p2] 
  (do 
    (println "Comparing mname")
    (compare (:mname p1) (:mname p2))))

(defn make-composed-comparison [& comparisons] 
  (fn [p1 p2]
    (let …
Run Code Online (Sandbox Code Playgroud)

clojure

5
推荐指数
1
解决办法
530
查看次数

标签 统计

clojure ×1