2

重複の可能性:
定数を使用したシーケンスのマッピング

私は次のことをしようとしています(単なる例):

(defn f [x param] ( 
  ; do something with "x" AND with "param"
  ))
(defn filtered-list [param] (map f ["a" "b" "c"]))
; called later as
(filtered-list 123)
; expected calls are: (f "a" 123), (f "b" 123) and (f "c" 123)

だから、私はに渡す方法を見つける必要がありparamfによって使用されていmapます。Clojureでそれは可能ですか?この機能は、「機能的クロージャ」とも呼ばれます。

4

2 に答える 2

2

partialparamが渡されたfからカリー化された関数を作成するために使用します

(defn f [param x] ( 
  ; do something with "x" AND with "param"
  ))

(defn filtered-list [param] (map (partial f param) ["a" "b" "c"]))
于 2013-01-08T10:48:34.250 に答える
1

パーシャルを使ってみませんか?

(defn f [param x]  
    (str param \- x) ;; do something
)

(defn filtered-list 
    [param] 
    (map (partial f param) ["a" "b" "c"]))

ただし、のパラメータの順序を変更する必要がありますf

于 2013-01-08T10:48:44.120 に答える