読者です 読者をやめる 読者になる 読者になる

レガシーコード生産ガイド

私に教えられることなら

Parenscriptで別ファイルでPSマクロを定義する

ずっとできなくて悩んでたんだけどGithubでコード見て回ったらわかった。最初から見れば良かった…他人のコード読むの大事だ。 psマクロ内でdefmacroして、それをどうにかして別ファイルから使おうと悪戦苦闘していたけど、psマクロ外でdefpsmacroを使えばい…

ParenscriptとCommonLispで関数の部分適用

JavaScript Ninjaの例を複数引数に対応するようにちょっと拡張して、Parenscriptで作ってみる。argumentsは配列のインスタンスではないので、Array.prototype.slice.callで変換してやらないと使えない。それからParenscriptでchain-caseがcamelCaseに変換さ…

ParenscriptからReact.jsを触ってみる

初めてReact.jsを触ってみた記録。LISPでJavaScriptを書くのだ、と決意が固まってきたので、いきなりParenscriptで書き始める。

Parenscriptのマクロでハマった

ライフゲームを作った時にできたマクロや関数を別ファイルに移して使おうとしたんだけど、動かない。調べてみるとマクロが展開できてないみたいだ。 (eval-when (:compile-toplevel :load-toplevel :execute) (defvar *game-code*) (setq *game-code* ())) (…

Parenscriptでライフゲーム SVG編

SVGでイイカンジの見た目を目指した http://phaendal.github.io/lifegame-parenscript/ リポジトリはここ phaendal/lifegame-parenscript Parenscriptで作ってみた現在の感想 Parenscriptに限らないけど、マクロで書きたくなっても、まず関数や関数渡しで書…

Parenscriptでライフゲーム

Clean Coderを読んで、型みたいな練習、いいな〜と思ったので、Parenscriptでゲームを作る足場を作るのも兼ねてライフゲームを作った。 phaendal/lifegame-parenscript 次はSVGで見た目をいいカンジにしたい。 動くのはここ http://phaendal.github.io/lifeg…

JavaScript、CommonLisp、Parenscriptでの引数確認

JavaScript JavaScriptで引数が渡されているか確認するときは、暗黙の型変換に気をつけなければいけない。 function needX (x) { if (!x) { console.error("error!"); return; } console.log("x is " + x); } // 渡したと判定されて欲しい needX(""); // => …

Parenscriptメモ

&key &keyを使ったコードは、引数が次のように変換される var _js48 = arguments.length; for (var n47 = 1; n47 < _js48; n47 += 2) { switch (arguments[n47]) { case 'parent': parent = arguments[n47 + 1]; break; case 'child': child = arguments[n47…

Parenscriptでゲームを作ってみる準備をしてみる

Quicklispのインストール 公式の手順に従う。 curl -O http://beta.quicklisp.org/quicklisp.lisp # 公開鍵が無いってエラーが出た。面倒なので飛ばす # curl -O http://beta.quicklisp.org/quicklisp.lisp.asc # gpg --verify quicklisp.lisp.asc sbcl --lo…