Schemeをつくろう(22) - JavaScriptのメモ
JavaScriptでSchemeを作る為に必要なことをメモっとく。
字句解析
tokenize = function(src) { return src.match(/\(|\)|'|[^\s()']+/g); }; // tokenize("(hello Javascript and Scheme world !!)") // => #(( hello Javascript and Scheme world !! ))
配列に分解出来る。ステキ。
ほうほう。
/\"(?:[^"])*\"/
eval
<div onclick="eval(this.firstChild.nodeValue)">alert("hello")</div>
タグの中をeval。便利。
apply
無いと死ねる。
var scm = new Scheme(); function len() { return arguments.length } alert(len.apply(this, [1, 2, 3, 4])); // => 4
関数.apply(環境, 引数の配列)
JavaScriptにはクロージャがある。
thisの部分で遊ぶと時空を越えられるかも知れない。
型
- 連想配列はObject型
- 配列はArray型
- null,undefinedはObjectを継承していない。。
括弧って便利ね
コロンで区切って複数式が書ける。
(alert("hello"), alert("world"))
構文はエラーになるので、無名関数で囲む。
参考
- 僕 Lisp
- リンク切れてるけど、わーい \(^o^)/ Scheme もどきを JS で書いたよー! - IT戦記のソース。
- JavaScript の配列と連想配列の違い - IT戦記
- 6の例が全て。