Clojureでx::xsとか[X|Y]みたいなやつ

何したか

F#では, リストをx::xsみたいに先頭とそれ以外に分けれるっぽい
Prologも[X|Y]みたいにできた気がする
Clojureでもできないかと思ってしらべた

(defn f [[x & xs]]
  (str x "::" xs))
(f [1 2 3]) ; -> "1::(2 3)"

どうなるのか

関数fの引数にリストを渡すと, 分配束縛によってxにfirst, xsにrestが入る.

感想

関数の引数としてしか機能しないし, 予期しない制限多そう
ほかにはletつかうとか?

追伸

こっそりClojure始めたので今後書いていきたい


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.