2016-12-20 7 views
4

私はClojureのを勉強し、私はこの例に出くわした:->>は正確にClojureではどういう意味ですか?

(defn people-in-scenes [scenes] 
    (->> scenes 
     (map :subject) 
     (interpose ", ") 
     (reduce str))) 

何をしますか?

+6

'(doc - >>)'はあなたの友人です。 –

答えて

9

->>は、「thread-last」マクロです。 1つのフォームを評価し、次のフォームにの最後の引数として渡します。それとも、それを別の方法を参照してくださいすることは

(reduce str (interpose ", " (map :subject scenes))) 

(reduce str 
      (interpose ", " 
          (map :subject scenes))) 

Clojureのコードを読んで、人はほとんど「内側からそうしてい

あなたのコードは同等です"または"ボトムアップ "から。スレッディングマクロを使用すると、より論理的な順序であると思われるコードを読み取ることができます。 "何かを持って、まずこれをやって、次はやりなさい..."。

2

私はClojure cheatsheet(およびClojureScript cheatsheet)と読むことが有用であると判明しました。これらは、言語内のすべての共通機能のリストを持っています。もちろん、追加のライブラリには他の多くの機能があります。

はまた、次のフォームに2番目の引数として関数を渡し->参照します。

1

私はまた、Clojureのの奇妙な「シンボル」文字程度this偉大なブログをチェックアウトすることをお勧めいたします。

関連する問題