タグ

Programmingとmacroに関するjjzakのブックマーク (7)

  • キーワード + オプショナル引数 - maoeのブログ

    Clojureは組み込みではキーワード引数がサポートされてませんが、分配束縛(destructuring)を使うことで同様のことができるようになります。例はにあります。 リンク先にも書いてあるとおり、このパターンをマクロにしたものが、clojure.contrib.defに入っているdefnkです。でも、defnkでは少し物足りないことがあります。 例えば[a :b 1 :c 2 & rest]というように、デフォルト値付きキーワード引数に加えて、さらにオプショナルな引数を取りたい場合はdefnkではうまくいきません。defnkを参考に、オプショナル引数もサポートするdefnk*を書いてみました。 (defn take-while-nth [n pred coll] (lazy-seq (when-let [s (seq coll)] (when (pred (first s)) (con

    キーワード + オプショナル引数 - maoeのブログ
  • Clojure - Macro入門 - Playground of ours

    教科書: Clojure in Action 作者: Amit Rathore出版社/メーカー: Manning Pubns Co発売日: 2011/11/28メディア: ペーパーバック クリック: 24回この商品を含むブログ (2件) を見る マクロ ? Clojureランタイムの動き ソースコード ------> [Read] -------> [Evaluate]まず、リーダーがソースコードをClojureのデータ構造に変換してから、評価されてプログラムが実行される。 マクロは評価される前のデータ構造上で振る舞いを定義することができる関数で、評価される前にプログラムからコードを操作することができる。 ソースコード ------> [Read] --- <macro> ---> [Evaluate] これができると、Clojureに新しい機能を追加することができたりするということ。 u

    Clojure - Macro入門 - Playground of ours
  • fogus: onlisp

    Send More Paramedics λ λ λ Fogus' Thoughts on life, programming, and thinking ❤ c clj erl pl frink fth cl org pure icl qi ❤ Follow me on Twitter... or RSS... Run this blog in mobile 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 2008 2007 2006 2005 2004 2003 2002 On Lisp -> Clojure: ProloG (pt. 1) Jan 15, 2009 some comments ; As always, I will post when the code is “com

  • Super Technique 講座~m4 チュートリアル

    m4 はUNIXの標準コマンドの1つであり、古い歴史を持つマクロプロセッサである。しかし、やや使い方が難しく、しかも古典度が高く専門的なために、どうしても紹介のプライオリティが下がる傾向があって、日語でマトモに書かれた解説にお目にかかったことがない。そこで、m4 に多少の経験値がある筆者があえて m4 のチュートリアルを書いて見せる。基的な情報は m4 の info から仕入れており、それにいろいろな実例を加えて書いている。 マクロプロセッサ m4 とは? m4 の使い方 m4 のディレクティブ マクロ定義に関するディレクティブ マクロ置換の原則 マクロ引数 undefine と include 条件分岐 ループ メタ文字の入れ換え 組み込み文字列処理関数 その他 マクロプロセッサ m4 とは? m4 はマクロプロセッサである。つまり、Cプリプロセッサ cpp (今時だと gcc -E

  • Why Ruby is an acceptable LISP (2005) | Random Hacks

    Random code snippets, projects and musings about software from Eric Kidd, a developer and occasional entrepreneur. You're welcome to contact me! Dec 03, 2005 • by Eric Kidd Years ago, I looked at Ruby and decided to ignore it. Ruby wasn’t as popular as Python, and it wasn’t as powerful as LISP. So why should I bother? Of course, we could turn those criteria around. What if Ruby were more popular t

  • Scheme:マクロの効用

    普通のやつらの上を行けでLispにおけるマクロの効用が述べられているが, 「じゃあ具体的にマクロを使って『こりゃ便利だ』っていう例を見せてよ」 と言われてもなかなかすぐに出て来ない。 そこで、なんかいいマクロの使用例を思い付いたら書いてってみるコーナー。 通りすがりのマクロ初心者です。便利なマクロの具体例はすごく知りたいので、この項、期待してます。 Paul Graham「On Lisp」を読書中でなかなか良いけど、日語の解説があった方が理解が早まるので。 もくじ マクロを使う局面定型パターンの簡略化関数呼び出しのインライン展開の代用新しい構文による抽象化ミニ言語の埋め込み宣言的なコードに見せるコンパイル時の処理具体例クラス定義でのリーダーの生成リストの内包表記 (List comprehension)リストの構築他の処理系の移植 関連:Scheme:マクロの危険 マクロを使う局面 なん

    Scheme:マクロの効用
  • M.Hiroi's Home Page / xyzzy Lisp Programming

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 1