タグ

clojureとmacroに関するishideoのブックマーク (9)

  • マクロを便利に使う

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

  • Clojureに入門したら知っておきたいN個のこと - lagénorhynque

    Clojureのデータ構造は抽象をもとに設計されているため、どのような抽象があるのか把握しておくことは重要です。

    Clojureに入門したら知っておきたいN個のこと - lagénorhynque
  • Clojureマクロの書き方 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Clojureマクロの書き方 - Qiita
  • スレッドマクロを整理する - 紙箱

    この記事はもともとTumblrに書いていた自分のブログ記事を転載したものです。投稿日時も当時の投稿日時を再現してあります。 スレッドマクロって? スレッドマクロ(threading macro)は、Clojureのソースを人間に読みやすい形で書けるマクロで、現在のClojure 1.5.1には、結構な数のが用意されています。1.5で初めて追加されたものもありますし、まとめておくと、今後Clojureを始める人にも役立つかもしれないなあってことで、ブログ記事に書いておくことにしました。1.5で導入された新しいスレッドマクロも含めて既に知っている人には役に立たないのであしからず。 「スレッド」マクロといっても、並列プログラミングのスレッドとはまったく関係がないです。Clojureの -> や ->> のような、矢印系マクロの総称として使われています。Clojure 1.5.1では、次のスレッド

    スレッドマクロを整理する - 紙箱
  • マクロクラブ Rust支部 | κeenのHappy Hacκing Blog

    マクロ・クラブのルール マクロを書くな それがパターンをカプセル化する唯一の方法ならば、マクロを書け 例外: 同等の関数に比べて、 呼び出し側が楽になるならば、マクロを書いても構わない κeenです。レーシックを受けようとしたら角膜が薄くて手術拒否されました。予定が狂って時間が空いたのでブログを書きます。 冒頭のルールはプログラミングClojureに出てくるマクロの書き方の指南です。 Rustのマクロって色々できるんだよという記事を書くにあたってマクロに一日の長があるLispの知見を引用されていただきました。 ルールにあるとおり、マクロは関数と違ってRustの第一級オブジェクトでないので扱いづらいですし体がコピーされるのでコードサイズも膨らんでしまいます。 よく考えながら使いましょう。とはいってもRustの構文はLispに比べると複雑ですし型やパターンマッチなどLispに存在しない構文要

    マクロクラブ Rust支部 | κeenのHappy Hacκing Blog
  • Clojureのマクロとclojure.specのある未来 - Qiita

    Clojurianでラブライブ!ファン(海未🏹&曜⛵推し)のlagénorhynque (a.k.a. カマイルカ)です。 今年9月に開催された勉強会「市ヶ谷Geek★Night#14 市ヶ谷java 〜JVM言語の玉手箱〜」(通称「市ヶ谷clojure」)でSpectacular Future with clojure.specと題してclojure.specの基を紹介する発表をしましたが、そういえばマクロでの利用には触れていなかったので記事ではclojure.specとマクロの関係についてご紹介します。 clojure.specとマクロ clojure.specでは、述語(predicate)の組み合わせでデータに対する仕様を記述することができ、それを関数の引数や戻り値に対して適用すれば関数の事前条件、事後条件のチェックが可能になり、ある種の契約プログラミングが実現できる。 一般

    Clojureのマクロとclojure.specのある未来 - Qiita
  • Is it possible to turn off qualification of symbols when using clojure syntax quote in a macro?

  • スレッドマクロを整理する

    スレッドマクロを整理する スレッドマクロって?スレッドマクロ(threading macro)は、Clojureのソースを人間に読みやすい形で書けるマクロで、現在のClojure 1.5.1には、結構な数のが用意されています。1.5で初めて追加されたものもありますし、まとめておくと、今後Clojureを始める人にも役立つかもしれないなあってことで、ブログ記事に書いておくことにしました。1.5で導入された新しいスレッドマクロも含めて既に知っている人には役に立たないのであしからず。 「スレッド」マクロといっても、並列プログラミングのスレッドとはまったく関係がないです。Clojureの -> や ->> のような、矢印系マクロの総称として使われています。Clojure 1.5.1では、次のスレッドマクロがあります。 ->->>as->some->some->>cond->cond->>基は -

  • EmacsLispを書くときに便利なライブラリ「dash.el」 - Qiita

    dash.elとは https://github.com/magnars/dash.el A modern list api for Emacs. No 'cl required. Emacs Lispを書くためのいろいろと便利な関数やマクロが用意されているライブラリです。 モダンな感じがします。 いくつか紹介 結構たくさんあるので一部だけ紹介 dash.elの関数はすべて名前に-プレフィックスがついています。 reduceが使える emacsに標準では用意されていないreduceが使えます。

    EmacsLispを書くときに便利なライブラリ「dash.el」 - Qiita
  • 1