タグ

evalに関するjoan9のブックマーク (4)

  • マクロ内でevalするべきでない理由 - Random Notes

    答え:レキシカル環境が無視されるから。 実例で解説しよう。CL-Yaccというライブラリがある。名前の通りyaccをCommon Lispにポートしたものだ。実装は単純明快で、背景となる理論を知っていればすんなり読めるはずだ。 CL-Yaccはdefine-parserというマクロを提供しており、ユーザーはこれを用いてパーサーを定義する。以下に簡単な四則演算パーサーの例を示す。 1 2 3 4 5 6 7 8 9 10 (yacc:define-parser *parser* (:start-symbol expression) (:terminals (integer + - * /)) (expression (expression + expression (lambda (a _ b) (declare (ignore _)) (+ a b))) (expression - exp

  • メタプログラミングの光と影 - ひがやすを技術ブログ

    メタプログラミングとはソースコードを生成するプログラミングのことです。メタプログラミングによって生成したソースコードは、eval関数で実行することができます。 メタプログラミングとは、ロジックを直接コーディングするのではなく、あるパターンをもったロジックを生成する高位ロジックによってプログラミングを行う方法、またその高位ロジックを定義する方法のこと。 メタプログラミング - Wikipedia だから、eval関数は、手段であり、メタプログラミングそのものではない。これは弾さんが指摘してますね。 evalだけがメタプログラミングの技法ではないし、またevalはその威力ゆえ最後の選択肢とすべきだ。 弾さんのパフォーマンスの指摘に対して、miyagawaさんが、「必ずしもevalが遅いとは限らない」と指摘してますね。 メタプログラミングとevalのベンチマーク - Bulknews::Subt

    メタプログラミングの光と影 - ひがやすを技術ブログ
  • perl,javascript and more - evalは最後の武器 : 404 Blog Not Found

    2009年02月08日01:00 カテゴリLightweight Languages perl,javascript and more - evalは最後の武器 うーん、そうなのだけど.... メタプログラミングとは - Perl入門〜サンプルコードによるPerl入門〜 メタプログラミングとはソースコードを生成するプログラミングのことです。メタプログラミングによって生成したソースコードは、eval関数で実行することができます。 evalだけがメタプログラミングの技法ではないし、またevalはその威力ゆえ最後の選択肢とすべきだ。 #!/usr/local/bin/perl use strict; use warnings; use Benchmark qw/timethese cmpthese/; cmpthese( timethese( 0, { eval => sub { no warn

    perl,javascript and more - evalは最後の武器 : 404 Blog Not Found
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 1