タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

predicateとlispに関するkiyo_hikoのブックマーク (1)

  • cond をスリムにする condp - hozumiの日記

    普通の cond (defn cond1 [x] (cond (= x :hey) "Hey!" (= x :bye) "Bye!" (= x :hi) "Hi!")) 重複するパターンがあります。condp を使うとスマートに。 (defn condp1 [x] (cond = x :hey "Hey!" :bye "Bye!" :hi "Hi!")) 次の例はちょっとトリッキーなので、あまり推奨されないかもしれない。 (defn cond2 [x] (cond (list? x) "List!" (map? x) "Map!" (vector? x) "Vector!")) (defn condp2 [x] (condp #(%1 %2) x list? "List!" map? "Map!" vector? "Vector!")) 参考 Learning Clojure #12: c

    cond をスリムにする condp - hozumiの日記
    kiyo_hiko
    kiyo_hiko 2010/12/03
    SQLのCASE式の略記"CASE var WHEN x THEN X WHEN y THEN Y ELSE DEF END"に似ている気もする。述語をも取っているところが驚異的。
  • 1