タグ

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

タグの絞り込みを解除

lispに関するnagolingのブックマーク (4)

  • マクロを便利に使う

    マクロを便利に使う マクロは自分で作るもんなのか?Clojureでばりばり書いている人からすると愚問で、「Yes」としか言いようがない質問だろうけども、前に、とある場所でClojureについてのLTをしたときに、「マクロとかagentとかは実際に使うもんなんですかね?」と質問を受けたことがあります。 『フレームワークで使うテクニックなんかはフレームワークを「使う側」が知る必要はない』みたいな話の延長なのか、あるいは、そもそも現場での使いどころがイメージできない、ってことなのか、つかみ損ねましたが、実例があると分かりやすいのかなあと思いまして、実際に自分はどういう風に使っているのか、ここに書いておこうと思いました。 文法をつくれ!やっぱり、実際に使う一番多い用途はこれだとおもうんですよね。新しい文法を作る。 とはいえ、ほとんどのClojureのテキストブックには、マクロに対するClojure

    マクロを便利に使う
  • LispマクロでLispコードをCSSに変換するようにしてみた - きのこる庭

    覚えたてのマクロの練習がてらつくってみた。500バイト程度で実装。ファイル出力がなければ400バイトくらい? (defmacro css (name elems) (with-open-file (*standard-output* (string-downcase name) :direction :output :if-exists :supersede) `(progn ,@(mapc (lambda (style) (let ((elem (car style)) (attrs (cadr style))) (format t "~a {~%" elem) (loop for i in attrs do (format t "~2T~a: ~a;~%" (string-downcase (car i)) (cadr i))) (format t "}~%~%"))) elems))

    LispマクロでLispコードをCSSに変換するようにしてみた - きのこる庭
  • Lispでマクロ - (lisping :at now)

    Lispと言ったらマクロです。マクロが無いLispなんて使いたくありません。 というわけで、今回はとうとうLispを知らない人はその真髄を知ることのないマクロのお話です。 大上段に構えて、マクロとは、という説明をすることもできるのですが、そういうことばかりしていると嫌われるので、どんなことができるのか何故マクロでなければならないのか、というのが知らない人にとっては知りたい事だと考えています。 ・マクロを書く前に さて、では説明といく前に、一つだけ確認しておくことがあります。 Lispという言語の持つ特徴、異常な量の括弧、それがどんな意味を持つのか何故あんな見た目でなければならないのかという、誰もが抱く根源的な疑問に対する答えであります。 あの括弧の意味はLispにおいて使われる文脈での括弧と同一のものです。つまり、Lispのコードはそれ自体がネストしたリスト構造(cons)であるということ

    Lispでマクロ - (lisping :at now)
  • あなたがLispを無視することができない理由 - 八発白中

    (この記事はLisp Advent Calendar 1日目のためのエントリです。) 禅が好んで用いる比喩がある。月を指すには指が必要である。だが、その指を月と思う者はわざわいなるかな。 — 鈴木大拙「禅」 これをLispに例えるなら、こう言うことができるかもしれない。 Lispを書くには括弧が必要である。だが、その括弧をLispと思う者はわざわいなるかな。 Lispを普段書いている身としてはLispについて括弧がどう、というのは些細なものに思えるが、Lispを知らない人からすると自然な考えだろう。人間は知らないものを理解しようとするとき、自分が今まで見たもの、知っているものと比較して手がかりを得ようとする。Lispが他のプログラム言語と比較してユニークなものは、やはりその括弧で表現されたS式だ。 しかし、Lispが括弧を使った奇妙な構文を用いるのは理由がある。そしてそれがLispの強力さ

  • 1