JavaScript
前書き JavaScriptを書いていて「ここでマクロがあれば…」と思う事案があったので、マクロ欲を満たすためのエントリです。 JavaScriptでのモジュール定義 JavaScriptでcounterモジュールを作ってみます。 var counter = (function() { var count = 0; var ad…
ブラウザからSuperAgentでファイルをPOSTしようとしてハマったのでメモ。なお、SuperAgentはAJAX通信に特化した軽量なJavaScriptライブラリです。 SuperAgent紹介記事リンク:jQuery.ajaxの代わりにSuperAgentを使う - Qiita ハマった部分 まず、HTMLでform…
Parenscript(PS)用にdefstructのサブセットを作った話です。例によってParenscript拡張の実験場、ps-experimentプロジェクトで実装を試みています。今回の記事時点のタグblog-play-ps-5をつけています。 github.com 前書き:Parenscript拡張の方針 ここま…
背景 第一回では、ps環境の外側でdefunするためのdefun+psを用意しました。そして、それをまとめてJavaScriptに出力するためのwith-import-ps-defマクロを作ったわけですが、出力する関数名を一々指定する必要がありました。 いったんはそこで妥協したのです…
リードマクロによるキャメルケース 今更ですが、Parenscriptでは大文字を表現するために、文字の直前にハイフンを置きます。 CL-USER> (ps (@ document get-element-by-id)) "document.getElementById;" Common Lispでは通常シンボル名は大文字として解釈さ…
@マクロが長い Parenscriptを書いていると真っ先に気になってくるのが@マクロです。下記の最初の例のように一つ程度ではそうでもないですが、いくつか並ぶと主張が激しく気になってきます。newに至っては単体でもだいぶ見づらいです。 CL-USER> (import 'ps:…
TypeScriptやCoffeeScriptといったJavaScriptを吐き出す言語の名前をしばしば聞きます(まだ使ったことはないです…。)が、Common LispにはParenscriptというものがあります。少しいじってみていたのですが、defun周りが気になったので少し遊んでみたという…
目的 いわゆるアコーディオンパネルが欲しかったのですが、MEANスタックなんて言葉を聞いてちょっと興味があったので、AngularJSで作ってみました。これだっというサンプルが意外に見つからなかったので一応メモに残しておこうと思った次第です。要件はおお…