consとconjの違い
初心者も初心者でなくても(e.g. ayato-p.icon)、分からなかったり/良く覚えてなかったりするポイント。
過去にハマった方一覧
カマイルカさんlagenorhynque.iconがTwitter/icons/twitter.iconで幾つか参考になることを言っていたのでまとめておく。 端的に言えば、conjはパフォーマンスを意識して設計されているので、型毎に最も効率のよいやりかたで要素をコレクションに追加する
つまり、リストに対して使えば前方、ベクターに対して使えば後方に追加する
もし、目的が「要素をコレクションの前方に追加する」ならconsを使えばいい
ただし、このとき返却されるコレクションは元のコレクションとは異なる
これは遅延シーケンスを扱うときに便利
「シーケンス関数は最終引数、コレクション関数は第1引数に対象を取るという慣習」に従っている
実はconjとconsのドキュメントにも書いてあったりする
Returns a new collection with the xs 'added'.
Returns a new seq where x is the first element and seq is the rest.
その他のツイート
その他の参照