adding more of the primitives needed to run the scheme benchmark
This commit is contained in:
parent
b8971417b2
commit
709ebce4fe
|
@ -29,16 +29,25 @@
|
||||||
'>=
|
'>=
|
||||||
'cons
|
'cons
|
||||||
'car
|
'car
|
||||||
'caar
|
|
||||||
'cdar
|
|
||||||
'cdr
|
'cdr
|
||||||
|
'caar
|
||||||
'cadr
|
'cadr
|
||||||
|
'cdar
|
||||||
'cddr
|
'cddr
|
||||||
'caddr
|
'caaar
|
||||||
'caadr
|
'caadr
|
||||||
'cdddr
|
'cadar
|
||||||
|
'caddr
|
||||||
|
'cdaar
|
||||||
'cdadr
|
'cdadr
|
||||||
|
'cddar
|
||||||
|
'cdddr
|
||||||
|
'caaaar
|
||||||
|
'caaadr
|
||||||
|
'caadar
|
||||||
|
'caaddr
|
||||||
'cadddr
|
'cadddr
|
||||||
|
'caddar
|
||||||
'list
|
'list
|
||||||
'list?
|
'list?
|
||||||
'list*
|
'list*
|
||||||
|
|
|
@ -121,7 +121,47 @@
|
||||||
return isPair(x) && isPair(x.rest) && isPair(x.rest.rest);
|
return isPair(x) && isPair(x.rest) && isPair(x.rest.rest);
|
||||||
},
|
},
|
||||||
'caddrable value');
|
'caddrable value');
|
||||||
var checkCadddrPair = baselib.check.makeCheckArgumentType(
|
var checkCaaarPair = baselib.check.makeCheckArgumentType(
|
||||||
|
function(x) {
|
||||||
|
return isPair(x) && isPair(x.first) && isPair(x.first.first);
|
||||||
|
},
|
||||||
|
'caaarable value');
|
||||||
|
var checkCdaarPair = baselib.check.makeCheckArgumentType(
|
||||||
|
function(x) {
|
||||||
|
return isPair(x) && isPair(x.first) && isPair(x.first.first);
|
||||||
|
},
|
||||||
|
'cdaarable value');
|
||||||
|
var checkCddarPair = baselib.check.makeCheckArgumentType(
|
||||||
|
function(x) {
|
||||||
|
return isPair(x) && isPair(x.first) && isPair(x.first.rest);
|
||||||
|
},
|
||||||
|
'cddarable value');
|
||||||
|
var checkCadarPair = baselib.check.makeCheckArgumentType(
|
||||||
|
function(x) {
|
||||||
|
return isPair(x) && isPair(x.first) && isPair(x.first.rest);
|
||||||
|
},
|
||||||
|
'cadarable value');
|
||||||
|
var checkCaaaarPair = baselib.check.makeCheckArgumentType(
|
||||||
|
function(x) {
|
||||||
|
return isPair(x) && isPair(x.first) && isPair(x.first.first) && isPair(x.first.first.first);
|
||||||
|
},
|
||||||
|
'caaaarable value');
|
||||||
|
var checkCaadarPair = baselib.check.makeCheckArgumentType(
|
||||||
|
function(x) {
|
||||||
|
return isPair(x) && isPair(x.first) && isPair(x.first.rest) && isPair(x.first.rest.first);
|
||||||
|
},
|
||||||
|
'caadarable value');
|
||||||
|
var checkCaaddrPair = baselib.check.makeCheckArgumentType(
|
||||||
|
function(x) {
|
||||||
|
return isPair(x) && isPair(x.rest) && isPair(x.rest.rest) && isPair(x.rest.rest.first);
|
||||||
|
},
|
||||||
|
'caaddrable value');
|
||||||
|
var checkCaaadrPair = baselib.check.makeCheckArgumentType(
|
||||||
|
function(x) {
|
||||||
|
return isPair(x) && isPair(x.rest) && isPair(x.rest.first) && isPair(x.rest.first.first);
|
||||||
|
},
|
||||||
|
'caaadrable value');
|
||||||
|
var checkCadddrPair = baselib.check.makeCheckArgumentType(
|
||||||
function(x) {
|
function(x) {
|
||||||
return isPair(x) && isPair(x.rest) && isPair(x.rest.rest) && isPair(x.rest.rest.rest);
|
return isPair(x) && isPair(x.rest) && isPair(x.rest.rest) && isPair(x.rest.rest.rest);
|
||||||
},
|
},
|
||||||
|
@ -141,6 +181,12 @@
|
||||||
return isPair(x) && isPair(x.rest) && isPair(x.rest.first);
|
return isPair(x) && isPair(x.rest) && isPair(x.rest.first);
|
||||||
},
|
},
|
||||||
'cdadrable value');
|
'cdadrable value');
|
||||||
|
var checkCaddarPair = baselib.check.makeCheckArgumentType(
|
||||||
|
function(x) {
|
||||||
|
return isPair(x) && isPair(x.first) && isPair(x.first.rest) && isPair(x.first.rest.rest);
|
||||||
|
},
|
||||||
|
'caddarable value');
|
||||||
|
|
||||||
var checkList = baselib.check.checkList;
|
var checkList = baselib.check.checkList;
|
||||||
var checkListofChars = baselib.check.makeCheckListofArgumentType(isChar, 'character');
|
var checkListofChars = baselib.check.makeCheckListofArgumentType(isChar, 'character');
|
||||||
var checkListofPairs = baselib.check.makeCheckListofArgumentType(isPair, 'pair');
|
var checkListofPairs = baselib.check.makeCheckListofArgumentType(isPair, 'pair');
|
||||||
|
@ -685,6 +731,34 @@
|
||||||
var firstArg = checkCaddrPair(M, 'caddr', 0);
|
var firstArg = checkCaddrPair(M, 'caddr', 0);
|
||||||
return firstArg.rest.rest.first;
|
return firstArg.rest.rest.first;
|
||||||
});
|
});
|
||||||
|
installPrimitiveProcedure(
|
||||||
|
'caaar',
|
||||||
|
1,
|
||||||
|
function (M) {
|
||||||
|
var firstArg = checkCaaarPair(M, 'caaar', 0);
|
||||||
|
return firstArg.first.first.first;
|
||||||
|
});
|
||||||
|
installPrimitiveProcedure(
|
||||||
|
'cdaar',
|
||||||
|
1,
|
||||||
|
function (M) {
|
||||||
|
var firstArg = checkCdaarPair(M, 'cdaar', 0);
|
||||||
|
return firstArg.first.first.rest;
|
||||||
|
});
|
||||||
|
installPrimitiveProcedure(
|
||||||
|
'cddar',
|
||||||
|
1,
|
||||||
|
function (M) {
|
||||||
|
var firstArg = checkCddarPair(M, 'cddar', 0);
|
||||||
|
return firstArg.first.rest.rest;
|
||||||
|
});
|
||||||
|
installPrimitiveProcedure(
|
||||||
|
'cadar',
|
||||||
|
1,
|
||||||
|
function (M) {
|
||||||
|
var firstArg = checkCadarPair(M, 'cadar', 0);
|
||||||
|
return firstArg.first.rest.first;
|
||||||
|
});
|
||||||
installPrimitiveProcedure(
|
installPrimitiveProcedure(
|
||||||
'caadr',
|
'caadr',
|
||||||
1,
|
1,
|
||||||
|
@ -706,6 +780,34 @@
|
||||||
var firstArg = checkCdadrPair(M, 'cdadr', 0);
|
var firstArg = checkCdadrPair(M, 'cdadr', 0);
|
||||||
return firstArg.rest.first.rest;
|
return firstArg.rest.first.rest;
|
||||||
});
|
});
|
||||||
|
installPrimitiveProcedure(
|
||||||
|
'caaaar',
|
||||||
|
1,
|
||||||
|
function (M) {
|
||||||
|
var firstArg = checkCaaaarPair(M, 'caaaar', 0);
|
||||||
|
return firstArg.first.first.first.first;
|
||||||
|
});
|
||||||
|
installPrimitiveProcedure(
|
||||||
|
'caaadr',
|
||||||
|
1,
|
||||||
|
function (M) {
|
||||||
|
var firstArg = checkCaaadrPair(M, 'caaadr', 0);
|
||||||
|
return firstArg.rest.first.first.first;
|
||||||
|
});
|
||||||
|
installPrimitiveProcedure(
|
||||||
|
'caadar',
|
||||||
|
1,
|
||||||
|
function (M) {
|
||||||
|
var firstArg = checkCaadarPair(M, 'caadar', 0);
|
||||||
|
return firstArg.first.rest.first.first;
|
||||||
|
});
|
||||||
|
installPrimitiveProcedure(
|
||||||
|
'caaddr',
|
||||||
|
1,
|
||||||
|
function (M) {
|
||||||
|
var firstArg = checkCaaddrPair(M, 'caaddr', 0);
|
||||||
|
return firstArg.rest.rest.first.first;
|
||||||
|
});
|
||||||
installPrimitiveProcedure(
|
installPrimitiveProcedure(
|
||||||
'cadddr',
|
'cadddr',
|
||||||
1,
|
1,
|
||||||
|
@ -713,6 +815,13 @@
|
||||||
var firstArg = checkCadddrPair(M, 'cadddr', 0);
|
var firstArg = checkCadddrPair(M, 'cadddr', 0);
|
||||||
return firstArg.rest.rest.rest.first;
|
return firstArg.rest.rest.rest.first;
|
||||||
});
|
});
|
||||||
|
installPrimitiveProcedure(
|
||||||
|
'caddar',
|
||||||
|
1,
|
||||||
|
function (M) {
|
||||||
|
var firstArg = checkCaddarPair(M, 'caddar', 0);
|
||||||
|
return firstArg.first.rest.rest.first;
|
||||||
|
});
|
||||||
installPrimitiveProcedure(
|
installPrimitiveProcedure(
|
||||||
'pair?',
|
'pair?',
|
||||||
1,
|
1,
|
||||||
|
|
|
@ -384,15 +384,20 @@ box?
|
||||||
cadr
|
cadr
|
||||||
;; cdar
|
;; cdar
|
||||||
cddr
|
cddr
|
||||||
;; caaar
|
caaar
|
||||||
caadr
|
caadr
|
||||||
;; cadar
|
cadar
|
||||||
;; cdaar
|
cdaar
|
||||||
cdadr
|
cdadr
|
||||||
;; cddar
|
cddar
|
||||||
caddr
|
caddr
|
||||||
cdddr
|
cdddr
|
||||||
cadddr
|
cadddr
|
||||||
|
caaaar
|
||||||
|
caaadr
|
||||||
|
caadar
|
||||||
|
caaddr
|
||||||
|
caddar
|
||||||
length
|
length
|
||||||
list*
|
list*
|
||||||
list-ref
|
list-ref
|
||||||
|
|
Loading…
Reference in New Issue
Block a user