タグ

clojureとlispに関するmoozのブックマーク (4)

  • Lisp: Common Lisp, Racket, Clojure, Emacs Lisp - Hyperpolyglot

    ca side-by-side reference sheet grammar and execution | variables and expressions | arithmetic and logic | strings | regular expressions | dates and time | lists | fixed-length arrays | dictionaries | user-defined types | functions | execution control | exceptions | streams | emacs buffers | files | directories | processes and environment | libraries and namespaces | objects | lisp macros | reflec

    mooz
    mooz 2014/06/17
    LISP 文法対応表。移転してた。
  • Clojureでsyntactic closureを使ってhygienic macroを書くためのライブラリを作りました - Homoiconic Days

    という話。当初は実現可能性を示すことを目的にしていましたが、それなりに実用できそうな感じになってきたのでライブラリとしてまとめました。 athos/syntactic-closure · GitHub syntactic-closure 0.1.0 - Clojars hygienic macroとは? syntactic closureとは? 詳細な説明はよそへ譲りますが、大雑把にいうと、hygienic macroとは識別子の衝突を自動的に回避する仕組みをもったマクロのことをいいます。hygienic macroについての研究は主にSchemeに対して行われていて、R5RSやR6RSに取り入れられているsyntax-rulesやsyntax-caseもhygienic macroの実装のひとつです。 syntactic closureはhygienic macroの別の実装で、hygi

    Clojureでsyntactic closureを使ってhygienic macroを書くためのライブラリを作りました - Homoiconic Days
    mooz
    mooz 2012/05/07
    clojure で健全なマクロを実現.その実装方法について解説.
  • Lisp: Common Lisp, Racket, Clojure, Emacs Lisp - Hyperpolyglot

    ca side-by-side reference sheet grammar and execution | variables and expressions | arithmetic and logic | strings | regular expressions | dates and time | lists | fixed-length arrays | dictionaries | user-defined types | functions | execution control | exceptions | streams | emacs buffers | files | directories | processes and environment | libraries and namespaces | objects | lisp macros | reflec

    mooz
    mooz 2010/04/19
    Common Lisp, Scheme, Clojure, Elisp の関数対応表. 最高.
  • Clojure のエレガントなところ - hozumiの日記

    リスト、ハッシュマップ、ベクタ、集合のリテラルがある ;リスト (1 2 3 4) ;ハッシュマップ {:a 1, :b 2, :c 3} ;ベクタ [1 2 3 4] ;集合 #{1 2 3 4} よく使う基データ型のリテラルがあるというのはソースコードに図が入ってるみたいで考えるよりも早く理解できる。しかもいじりやすい。他の多くの言語でもこれらの基データ型のリテラルは用意されているが、Clojure ではこれらはとてもよく使う重要なビルディングブロック。 リスト、ハッシュマップ、ベクタ、集合、文字列 をシーケンスとして抽象化 (take 2 '(a b c d)) ;リスト ;=> (a b) (take 2 {:a 1 :b 2 :c 3 :d 4}) ;ハッシュマップ ;=> ([:a 1] [:b 2]) (take 2 [:a :b :c :d]) ;ベクタ ;=> (:a

    Clojure のエレガントなところ - hozumiの日記
    mooz
    mooz 2010/02/09
    car, cdr -> first, rest. lambda -> fn, 関数定義は Common Lisp 形式.
  • 1