5
5

More than 5 years have passed since last update.

Clojureの無名関数で%-1は何を表すか?

Posted at

Clojureの無名関数では、%, %n, %&の形式で引数にアクセスできますが、%1.0のような不正な形式だと以下のような例外が発生します。

java.lang.IllegalStateException: Arg literal must be %, %& or %integer

%integerならいいのかってことで試したところ、%-1が使えました。

anonymous.clj
(apply #(println %1 %-1 %2 %&) (range 10))

さて結果はこのとおり。

0 (2 3 4 5 6 7 8 9) 1 (2 3 4 5 6 7 8 9)

%&と同じですね。
正式な仕様ではないかもしれないので、%&を使ったほうがいいでしょう

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5