2016-08-01 12 views
0

私は関数型プログラミングの初心者です。私は迷路をきれいに印刷しようとしています。
はここ関数を呼び出すために間違った引数番号

(defn pprint-maze 
    [arr row col] 
    (loop [coll arr idx 0] 
    (match [idx] 
     [(_ :guard #(= (mod idx col) 0))] (println "") ; write a \n 
     :else (print "-"))      ; write a wall 
    (when (next coll) 
     (recur (next coll) (inc idx))))) 

My機能が収集し、迷路の大きさを取り、今のところ、ちょうど行の終わりにダッシュと\ nを印刷する私の関数です。 私はそれをした問題があります: Exception in thread "main" clojure.lang.ArityException: Wrong number of args (1) passed to: core/pprint-maze/fn--4873/fn--4874

が、私は関数が指摘私のループ機能だと思う、と問題が一致するように関連している(ので、私は試合のブロック、すべての作業をコメントする場合)。私は一致すると引数(関数printlnの戻り値)としてnilでループ関数を呼び出そうとすると思います。

どのように解決するには?

答えて

7

:guardに渡される関数は、厳密に1つの引数を取る必要があり、その値はガードされます。あなたの関数は引数をゼロにします。

+2

... '#(...) 'フォームに'% 'や'%1'トークンが含まれていないためです。 – Thumbnail

関連する問題