タグ

macroに関するemonkakのブックマーク (6)

  • Zero-config code transformation with babel-plugin-macros · Babel

    Babel started out as a transpiler to let you write the latest version of the ECMAScript specification but ship to environments that don't implement those features yet. But it has become much more than that. "Compilers are the New Frameworks" says Tom Dale and I could not agree more. We're seeing more and more compile-time optimizations for libraries and frameworks. I'm not talking about syntax ext

    Zero-config code transformation with babel-plugin-macros · Babel
  • Island Life - 簡単で直交性の高い道具を組み合わせる

    About 南の島のプログラマ。 たまに役者。 Practical Schemeの主。 WiLiKi:Shiro 最近のエントリ 無限cxr高校受験Defense振り返ってみると2019年は色々学んで楽...覚えるより忘れる方が難しい(こともある)眼鏡のつると3DプリンタIris Klein Acting ClassSAG-AFTRA conservatory: Voice Acting創作活動って自分を晒け出さねばならないと...ループを使わずに1から100までMore... 最近のコメント shiro on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/14)1357 on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/01)ベアトリーチェ on ハイポハイポハイポのシューリンガン (2022/04/02)ベアトリーチ

    Island Life - 簡単で直交性の高い道具を組み合わせる
  • Scalaのマクロの基礎。評価タイミング、評価回数と、健全性 - xuwei-k's blog

    Scalaのマクロというより、一般的にマクロに共通する基であり重要な部分です。それをScala使って説明するだけです。 Scalaのマクロは、未だexperimentalという位置づけで、他の機能に比べれば仕様やAPIが変わりやすい状態です。そして、機能が搭載されてからあまり時間が経っていないこともあって*1あまり一般的に使われているとはいえない状態でしょう。しかし、Cなどのマクロとは違い、Scalaのものはある程度は格的にコンパイル時に抽象構文木を自由にいじれるものであり、使いこなせるようになってくるとなかなかおもしろいです。 マクロというと、ある程度の人はLispを思い浮かべると思いますが(?)、先ほど書いた「格的に抽象構文木いじれる」という点はまさにLispと共通する部分もあります(もちろん異なる部分も多くあります)。 つまり、これから説明することは、On Lisp*2 On

    Scalaのマクロの基礎。評価タイミング、評価回数と、健全性 - xuwei-k's blog
  • sweet.jsでshift/reset: 限定継続を使ってコールバック地獄から抜け出す - 標高+1m

    Stop Writing JavaScript Compilers! Make Macros Insteadを読んで、sweet.jsを使ってみた。 解決したい事 JavaScriptでは非同期処理が多いので、継続渡しスタイルのコードばっかりになるのだけど、みんなこれをcallback hellとかpyramid of doomとか呼んで嫌っている。 そこでプロミスとかフューチャっていうのが使われるようになった。プロミスを使う利点は結果が出ていない状態をファーストクラスな値として使える事だと思う。ネストはなくなるけど、結局文法の支援がないからpromise.then(function () {...})みたいに、限定継続渡し的なことはしなくちゃいけない。 継続渡し形式が嫌ならcall/ccとかshift/resetを導入したらいいんじゃないかとはずっと思っていた。そこで今日は、sweet.

    sweet.jsでshift/reset: 限定継続を使ってコールバック地獄から抜け出す - 標高+1m
  • Sweet.js - Hygienic Macros for JavaScript

    Build your dream language Sweet brings the hygienic macros of languages like Scheme and Rust to JavaScript. Macros allow you to sweeten the syntax of JavaScript and craft the language you always wanted. Getting started Install the command line app:

  • 様々な Hygienic Macro - 月の塵

    [Chicken-users] macro systems and chicken (long) を読んだ(via http://fixedpoint.jp/)。R6RS で Scheme 標準のマクロシステムは syntax-case と syntax-rules になったが Chicken では他の様々なマクロシステムも使うことができる。以下要約みたいなもの。 背景マクロシステムには完全に直交するふたつの側面がある。健全である(Hygienic)か健全でないか、と、高レベルであるか低レベルであるか、ということである。健全であるというのは自動的に識別子の衝突を回避する仕組みがあるかどいうかということであり、低レベルというのは、入力となるソースコードを Lisp の基関数を使って直接操作することを指し、高レベルというのは syntax-rules のように専用のパターン言語を使って構造を

  • 1