X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=prelude.js;h=b934132bfb9374a032fd4cb5ce020f7adb824f94;hb=3d960988cd3719466c60221eaa4df888e47b5d0e;hp=4496eca0b5c2d44eaf87006127e8b50fbb96fa56;hpb=70cb8e266aab7e09753104b9ac4512676e1b9a61;p=jscl.git diff --git a/prelude.js b/prelude.js index 4496eca..b934132 100644 --- a/prelude.js +++ b/prelude.js @@ -1,7 +1,48 @@ -// +var nil; -function Symbol(name){ - this.name = name; +function pv (x) { return x==undefined? nil: x; } + +function mv(){ + var r = []; + r['multiple-value'] = true; + for (var i=0; i n) throw 'too many arguments'; +} + +function checkArgs(args, n){ + checkArgsAtLeast(args, n); + checkArgsAtMost(args, n); +} + +// Improper list constructor (like LIST*) +function QIList(){ + if (arguments.length == 1) + return arguments[0]; + else { + var i = arguments.length-1; + var r = arguments[i--]; + for (; i>=0; i--){ + r = {car: arguments[i], cdr: r}; + } + return r; + } +}