Last active
December 17, 2015 23:29
-
-
Save plaster/5689919 to your computer and use it in GitHub Desktop.
precompでparentの入るinternal defineの例
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% gosh -V | |
Gauche scheme shell, version 0.9.3 [utf-8,pthreads], x86_64-unknown-linux-gnu | |
% gosh precomp -e -P -o even--odd even-odd.scm |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Generated automatically from even-odd.scm. DO NOT EDIT */ | |
#include <gauche.h> | |
#include <gauche/code.h> | |
#include <gauche/macro.h> | |
#include <gauche/extend.h> | |
#if defined(__CYGWIN__) || defined(GAUCHE_WINDOWS) | |
#define SCM_CGEN_CONST /*empty*/ | |
#else | |
#define SCM_CGEN_CONST const | |
#endif | |
static SCM_CGEN_CONST struct scm__scRec { | |
ScmString d1129[16]; | |
} scm__sc = { | |
{ /* ScmString d1129 */ | |
SCM_STRING_CONST_INITIALIZER("even-odd", 8, 8), | |
SCM_STRING_CONST_INITIALIZER("%even?", 6, 6), | |
SCM_STRING_CONST_INITIALIZER("%odd?", 5, 5), | |
SCM_STRING_CONST_INITIALIZER("even?&odd?$", 11, 11), | |
SCM_STRING_CONST_INITIALIZER("%toplevel", 9, 9), | |
SCM_STRING_CONST_INITIALIZER("+", 1, 1), | |
SCM_STRING_CONST_INITIALIZER("pa$", 3, 3), | |
SCM_STRING_CONST_INITIALIZER("zero?", 5, 5), | |
SCM_STRING_CONST_INITIALIZER("map", 3, 3), | |
SCM_STRING_CONST_INITIALIZER("iota", 4, 4), | |
SCM_STRING_CONST_INITIALIZER("debug-print-pre", 15, 15), | |
SCM_STRING_CONST_INITIALIZER("gauche.vm.debugger", 18, 18), | |
SCM_STRING_CONST_INITIALIZER("debug-print-post", 16, 16), | |
SCM_STRING_CONST_INITIALIZER("cdr", 3, 3), | |
SCM_STRING_CONST_INITIALIZER("null?", 5, 5), | |
SCM_STRING_CONST_INITIALIZER("%test", 5, 5), | |
}, | |
}; | |
static struct scm__rcRec { | |
ScmCompiledCode d1131[6]; | |
ScmWord d1130[172]; | |
ScmObj d1128[60]; | |
} scm__rc = { | |
{ /* ScmCompiledCode d1131 */ | |
SCM_COMPILED_CODE_CONST_INITIALIZER( /* %even? */ | |
(ScmWord*)(SCM_OBJ(&scm__rc.d1130[0])), 15, | |
9, 1, 0, SCM_FALSE, SCM_NIL, SCM_FALSE, | |
SCM_OBJ(&scm__rc.d1131[2]), SCM_FALSE), | |
SCM_COMPILED_CODE_CONST_INITIALIZER( /* %odd? */ | |
(ScmWord*)(SCM_OBJ(&scm__rc.d1130[15])), 16, | |
9, 1, 0, SCM_FALSE, SCM_NIL, SCM_FALSE, | |
SCM_OBJ(&scm__rc.d1131[2]), SCM_FALSE), | |
SCM_COMPILED_CODE_CONST_INITIALIZER( /* even?&odd?$ */ | |
(ScmWord*)(SCM_OBJ(&scm__rc.d1130[31])), 5, | |
6, 2, 0, SCM_FALSE, SCM_NIL, SCM_FALSE, | |
SCM_OBJ(&scm__rc.d1131[3]), SCM_FALSE), | |
SCM_COMPILED_CODE_CONST_INITIALIZER( /* %toplevel */ | |
(ScmWord*)(SCM_OBJ(&scm__rc.d1130[36])), 5, | |
0, 0, 0, SCM_FALSE, SCM_NIL, SCM_FALSE, | |
SCM_FALSE, SCM_FALSE), | |
SCM_COMPILED_CODE_CONST_INITIALIZER( /* %test */ | |
(ScmWord*)(SCM_OBJ(&scm__rc.d1130[41])), 126, | |
24, 0, 0, SCM_FALSE, SCM_NIL, SCM_FALSE, | |
SCM_OBJ(&scm__rc.d1131[5]), SCM_FALSE), | |
SCM_COMPILED_CODE_CONST_INITIALIZER( /* %toplevel */ | |
(ScmWord*)(SCM_OBJ(&scm__rc.d1130[167])), 5, | |
0, 0, 0, SCM_FALSE, SCM_NIL, SCM_FALSE, | |
SCM_FALSE, SCM_FALSE), | |
}, | |
{ /* ScmWord d1130 */ | |
/* (even?&odd?$ %even?) */ | |
0x0000100e /* 0 (PRE-CALL 1) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[0]) + 5), | |
0x00000048 /* 2 (LREF0-PUSH) */, | |
0x00000044 /* 3 (LREF20) */, | |
0x00001011 /* 4 (CALL 1) */, | |
0x00000031 /* 5 (RT) */, | |
0x0000100e /* 6 (PRE-CALL 1) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[0]) + 11), | |
0x00000048 /* 8 (LREF0-PUSH) */, | |
0x00000045 /* 9 (LREF21) */, | |
0x00001011 /* 10 (CALL 1) */, | |
0x0000000d /* 11 (PUSH) */, | |
0x00000041 /* 12 (LREF10) */, | |
0x0000101d /* 13 (LOCAL-ENV-TAIL-CALL 1) */, | |
0x00000014 /* 14 (RET) */, | |
/* (even?&odd?$ %odd?) */ | |
0x0000100e /* 0 (PRE-CALL 1) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[15]) + 5), | |
0x00000048 /* 2 (LREF0-PUSH) */, | |
0x00000044 /* 3 (LREF20) */, | |
0x00001011 /* 4 (CALL 1) */, | |
0x0000008a /* 5 (NOT) */, | |
0x00000030 /* 6 (RF) */, | |
0x0000100e /* 7 (PRE-CALL 1) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[15]) + 12), | |
0x00000048 /* 9 (LREF0-PUSH) */, | |
0x00000045 /* 10 (LREF21) */, | |
0x00001011 /* 11 (CALL 1) */, | |
0x0000000d /* 12 (PUSH) */, | |
0x00000042 /* 13 (LREF11) */, | |
0x0000101d /* 14 (LOCAL-ENV-TAIL-CALL 1) */, | |
0x00000014 /* 15 (RET) */, | |
/* even?&odd?$ */ | |
0x00002019 /* 0 (LOCAL-ENV-CLOSURES 2) */, | |
SCM_WORD(SCM_OBJ(&scm__rc.d1128[6])) /* (#<compiled-code (even?&odd?$ %even?)@0xe86a20> #<compiled-code (even?&odd?$ %odd?)@0xe869c0>) */, | |
0x00000049 /* 2 (LREF1-PUSH) */, | |
0x0000003d /* 3 (LREF0) */, | |
0x0000209b /* 4 (VALUES-RET 2) */, | |
/* %toplevel */ | |
0x00000016 /* 0 (CLOSURE) */, | |
SCM_WORD(SCM_OBJ(&scm__rc.d1131[2])) /* #<compiled-code even?&odd?$@0xe86a80> */, | |
0x00000015 /* 2 (DEFINE 0) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#even?&odd?$> */, | |
0x00000014 /* 4 (RET) */, | |
/* %test */ | |
0x0000200e /* 0 (PRE-CALL 2) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 13), | |
0x0000200e /* 2 (PRE-CALL 2) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 9), | |
0x00000053 /* 4 (GREF-PUSH) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#+> */, | |
-0x00000ff9 /* 6 (CONSTI-PUSH -1) */, | |
0x00002054 /* 7 (GREF-CALL 2) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#pa$> */, | |
0x00000056 /* 9 (PUSH-GREF) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#zero?> */, | |
0x00002057 /* 11 (PUSH-GREF-CALL 2) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#even?&odd?$> */, | |
0x00002036 /* 13 (TAIL-RECEIVE 2 0) */, | |
0x0000100e /* 14 (PRE-CALL 1) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 20), | |
0x00000006 /* 16 (CONST-PUSH) */, | |
SCM_WORD(SCM_OBJ(&scm__rc.d1128[27])) /* (map %odd? (iota 10)) */, | |
0x00001054 /* 18 (GREF-CALL 1) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier gauche.vm.debugger#debug-print-pre> */, | |
0x0000200e /* 20 (PRE-CALL 2) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 30), | |
0x00000048 /* 22 (LREF0-PUSH) */, | |
0x0000100e /* 23 (PRE-CALL 1) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 28), | |
0x0000a007 /* 25 (CONSTI-PUSH 10) */, | |
0x00001054 /* 26 (GREF-CALL 1) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#iota> */, | |
0x00002057 /* 28 (PUSH-GREF-CALL 2) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#map> */, | |
0x00400036 /* 30 (TAIL-RECEIVE 0 1) */, | |
0x0000100e /* 31 (PRE-CALL 1) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 36), | |
0x00000048 /* 33 (LREF0-PUSH) */, | |
0x00001054 /* 34 (GREF-CALL 1) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier gauche.vm.debugger#debug-print-post> */, | |
0x0000001a /* 36 (POP-LOCAL-ENV) */, | |
0x0000100e /* 37 (PRE-CALL 1) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 43), | |
0x00000006 /* 39 (CONST-PUSH) */, | |
SCM_WORD(SCM_OBJ(&scm__rc.d1128[38])) /* (map %even? (iota 10)) */, | |
0x00001054 /* 41 (GREF-CALL 1) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier gauche.vm.debugger#debug-print-pre> */, | |
0x0000200e /* 43 (PRE-CALL 2) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 53), | |
0x00000049 /* 45 (LREF1-PUSH) */, | |
0x0000100e /* 46 (PRE-CALL 1) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 51), | |
0x0000a007 /* 48 (CONSTI-PUSH 10) */, | |
0x00001054 /* 49 (GREF-CALL 1) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#iota> */, | |
0x00002057 /* 51 (PUSH-GREF-CALL 2) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#map> */, | |
0x00400036 /* 53 (TAIL-RECEIVE 0 1) */, | |
0x0000100e /* 54 (PRE-CALL 1) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 59), | |
0x00000048 /* 56 (LREF0-PUSH) */, | |
0x00001054 /* 57 (GREF-CALL 1) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier gauche.vm.debugger#debug-print-post> */, | |
0x0000001a /* 59 (POP-LOCAL-ENV) */, | |
0x0000001a /* 60 (POP-LOCAL-ENV) */, | |
0x0000200e /* 61 (PRE-CALL 2) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 69), | |
0x00000053 /* 63 (GREF-PUSH) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#cdr> */, | |
0x00000053 /* 65 (GREF-PUSH) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#null?> */, | |
0x00002054 /* 67 (GREF-CALL 2) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#even?&odd?$> */, | |
0x00002036 /* 69 (TAIL-RECEIVE 2 0) */, | |
0x0000100e /* 70 (PRE-CALL 1) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 76), | |
0x00000006 /* 72 (CONST-PUSH) */, | |
SCM_WORD(SCM_OBJ(&scm__rc.d1128[52])) /* (map %odd? (map iota (iota 10))) */, | |
0x00001054 /* 74 (GREF-CALL 1) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier gauche.vm.debugger#debug-print-pre> */, | |
0x0000200e /* 76 (PRE-CALL 2) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 92), | |
0x00000048 /* 78 (LREF0-PUSH) */, | |
0x0000200e /* 79 (PRE-CALL 2) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 90), | |
0x00000053 /* 81 (GREF-PUSH) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#iota> */, | |
0x0000100e /* 83 (PRE-CALL 1) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 88), | |
0x0000a007 /* 85 (CONSTI-PUSH 10) */, | |
0x00001054 /* 86 (GREF-CALL 1) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#iota> */, | |
0x00002057 /* 88 (PUSH-GREF-CALL 2) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#map> */, | |
0x00002057 /* 90 (PUSH-GREF-CALL 2) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#map> */, | |
0x00400036 /* 92 (TAIL-RECEIVE 0 1) */, | |
0x0000100e /* 93 (PRE-CALL 1) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 98), | |
0x00000048 /* 95 (LREF0-PUSH) */, | |
0x00001054 /* 96 (GREF-CALL 1) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier gauche.vm.debugger#debug-print-post> */, | |
0x0000001a /* 98 (POP-LOCAL-ENV) */, | |
0x0000100e /* 99 (PRE-CALL 1) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 105), | |
0x00000006 /* 101 (CONST-PUSH) */, | |
SCM_WORD(SCM_OBJ(&scm__rc.d1128[56])) /* (map %even? (map iota (iota 10))) */, | |
0x00001054 /* 103 (GREF-CALL 1) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier gauche.vm.debugger#debug-print-pre> */, | |
0x0000200e /* 105 (PRE-CALL 2) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 121), | |
0x00000049 /* 107 (LREF1-PUSH) */, | |
0x0000200e /* 108 (PRE-CALL 2) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 119), | |
0x00000053 /* 110 (GREF-PUSH) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#iota> */, | |
0x0000100e /* 112 (PRE-CALL 1) */, | |
SCM_WORD((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]) + 117), | |
0x0000a007 /* 114 (CONSTI-PUSH 10) */, | |
0x00001054 /* 115 (GREF-CALL 1) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#iota> */, | |
0x00002057 /* 117 (PUSH-GREF-CALL 2) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#map> */, | |
0x00002057 /* 119 (PUSH-GREF-CALL 2) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#map> */, | |
0x00400036 /* 121 (TAIL-RECEIVE 0 1) */, | |
0x00000048 /* 122 (LREF0-PUSH) */, | |
0x00001055 /* 123 (GREF-TAIL-CALL 1) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier gauche.vm.debugger#debug-print-post> */, | |
0x00000014 /* 125 (RET) */, | |
/* %toplevel */ | |
0x00000016 /* 0 (CLOSURE) */, | |
SCM_WORD(SCM_OBJ(&scm__rc.d1131[4])) /* #<compiled-code %test@0xe86300> */, | |
0x00000015 /* 2 (DEFINE 0) */, | |
SCM_WORD(SCM_UNDEFINED) /* #<identifier #f#%test> */, | |
0x00000014 /* 4 (RET) */, | |
}, | |
{ /* ScmObj d1128 */ | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_OBJ(&scm__rc.d1131[1]), | |
SCM_NIL, | |
SCM_OBJ(&scm__rc.d1131[0]), | |
SCM_OBJ(&scm__rc.d1128[4]), | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_MAKE_INT(10U), | |
SCM_NIL, | |
SCM_UNDEFINED, | |
SCM_OBJ(&scm__rc.d1128[19]), | |
SCM_OBJ(&scm__rc.d1128[21]), | |
SCM_NIL, | |
SCM_UNDEFINED, | |
SCM_OBJ(&scm__rc.d1128[23]), | |
SCM_UNDEFINED, | |
SCM_OBJ(&scm__rc.d1128[25]), | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNDEFINED, | |
SCM_OBJ(&scm__rc.d1128[23]), | |
SCM_UNDEFINED, | |
SCM_OBJ(&scm__rc.d1128[36]), | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
SCM_UNDEFINED, | |
SCM_OBJ(&scm__rc.d1128[23]), | |
SCM_UNDEFINED, | |
SCM_OBJ(&scm__rc.d1128[44]), | |
SCM_OBJ(&scm__rc.d1128[46]), | |
SCM_NIL, | |
SCM_UNDEFINED, | |
SCM_OBJ(&scm__rc.d1128[48]), | |
SCM_UNDEFINED, | |
SCM_OBJ(&scm__rc.d1128[50]), | |
SCM_UNDEFINED, | |
SCM_OBJ(&scm__rc.d1128[48]), | |
SCM_UNDEFINED, | |
SCM_OBJ(&scm__rc.d1128[54]), | |
SCM_UNBOUND, | |
SCM_UNBOUND, | |
}, | |
}; | |
static ScmCompiledCode *toplevels[] = { | |
SCM_COMPILED_CODE(SCM_OBJ(&scm__rc.d1131[3])), | |
SCM_COMPILED_CODE(SCM_OBJ(&scm__rc.d1131[5])), | |
NULL /*termination*/ | |
}; | |
SCM_EXTENSION_ENTRY void Scm_Init_even__odd() { | |
Scm_SelectModule(SCM_MODULE(SCM_OBJ(Scm_GaucheModule()))); | |
SCM_INIT_EXTENSION(even_odd); | |
scm__rc.d1128[1] = Scm_MakeSymbol(SCM_STRING(SCM_OBJ(&scm__sc.d1129[0])),TRUE); /* even-odd */ | |
scm__rc.d1128[0] = SCM_OBJ(Scm_FindModule(SCM_SYMBOL(scm__rc.d1128[1]), SCM_FIND_MODULE_CREATE)); /* module even-odd */ | |
Scm_SelectModule(SCM_MODULE(scm__rc.d1128[0])); | |
Scm_SelectModule(SCM_MODULE(SCM_OBJ(Scm_GaucheModule()))); | |
Scm_SelectModule(SCM_MODULE(scm__rc.d1128[0])); | |
scm__rc.d1128[2] = Scm_MakeSymbol(SCM_STRING(SCM_OBJ(&scm__sc.d1129[1])),TRUE); /* %even? */ | |
SCM_COMPILED_CODE(SCM_OBJ(&scm__rc.d1131[0]))->name = scm__rc.d1128[2];/* (even?&odd?$ %even?) */ | |
scm__rc.d1128[3] = Scm_MakeSymbol(SCM_STRING(SCM_OBJ(&scm__sc.d1129[2])),TRUE); /* %odd? */ | |
SCM_COMPILED_CODE(SCM_OBJ(&scm__rc.d1131[1]))->name = scm__rc.d1128[3];/* (even?&odd?$ %odd?) */ | |
scm__rc.d1128[8] = Scm_MakeSymbol(SCM_STRING(SCM_OBJ(&scm__sc.d1129[3])),TRUE); /* even?&odd?$ */ | |
SCM_COMPILED_CODE(SCM_OBJ(&scm__rc.d1131[2]))->name = scm__rc.d1128[8];/* even?&odd?$ */ | |
scm__rc.d1128[9] = Scm_MakeIdentifier(SCM_SYMBOL(scm__rc.d1128[8]), Scm_FindModule(SCM_SYMBOL(scm__rc.d1128[1]), SCM_FIND_MODULE_CREATE), | |
SCM_NIL); /* even-odd#even?&odd?$ */ | |
scm__rc.d1128[10] = Scm_MakeSymbol(SCM_STRING(SCM_OBJ(&scm__sc.d1129[4])),TRUE); /* %toplevel */ | |
SCM_COMPILED_CODE(SCM_OBJ(&scm__rc.d1131[3]))->name = scm__rc.d1128[10];/* %toplevel */ | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[36]))[3] = SCM_WORD(scm__rc.d1128[9]); | |
scm__rc.d1128[12] = Scm_MakeSymbol(SCM_STRING(SCM_OBJ(&scm__sc.d1129[5])),TRUE); /* + */ | |
scm__rc.d1128[11] = Scm_MakeIdentifier(SCM_SYMBOL(scm__rc.d1128[12]), Scm_FindModule(SCM_SYMBOL(scm__rc.d1128[1]), SCM_FIND_MODULE_CREATE), | |
SCM_NIL); /* even-odd#+ */ | |
scm__rc.d1128[14] = Scm_MakeSymbol(SCM_STRING(SCM_OBJ(&scm__sc.d1129[6])),TRUE); /* pa$ */ | |
scm__rc.d1128[13] = Scm_MakeIdentifier(SCM_SYMBOL(scm__rc.d1128[14]), Scm_FindModule(SCM_SYMBOL(scm__rc.d1128[1]), SCM_FIND_MODULE_CREATE), | |
SCM_NIL); /* even-odd#pa$ */ | |
scm__rc.d1128[16] = Scm_MakeSymbol(SCM_STRING(SCM_OBJ(&scm__sc.d1129[7])),TRUE); /* zero? */ | |
scm__rc.d1128[15] = Scm_MakeIdentifier(SCM_SYMBOL(scm__rc.d1128[16]), Scm_FindModule(SCM_SYMBOL(scm__rc.d1128[1]), SCM_FIND_MODULE_CREATE), | |
SCM_NIL); /* even-odd#zero? */ | |
scm__rc.d1128[17] = Scm_MakeSymbol(SCM_STRING(SCM_OBJ(&scm__sc.d1129[8])),TRUE); /* map */ | |
scm__rc.d1128[18] = Scm_MakeSymbol(SCM_STRING(SCM_OBJ(&scm__sc.d1129[9])),TRUE); /* iota */ | |
SCM_SET_CAR(SCM_OBJ(&scm__rc.d1128[21]), scm__rc.d1128[18]); | |
SCM_SET_CAR(SCM_OBJ(&scm__rc.d1128[25]), scm__rc.d1128[3]); | |
SCM_SET_CAR(SCM_OBJ(&scm__rc.d1128[27]), scm__rc.d1128[17]); | |
scm__rc.d1128[30] = Scm_MakeSymbol(SCM_STRING(SCM_OBJ(&scm__sc.d1129[10])),TRUE); /* debug-print-pre */ | |
scm__rc.d1128[31] = Scm_MakeSymbol(SCM_STRING(SCM_OBJ(&scm__sc.d1129[11])),TRUE); /* gauche.vm.debugger */ | |
scm__rc.d1128[29] = Scm_MakeIdentifier(SCM_SYMBOL(scm__rc.d1128[30]), Scm_FindModule(SCM_SYMBOL(scm__rc.d1128[31]), SCM_FIND_MODULE_CREATE), | |
SCM_NIL); /* gauche.vm.debugger#debug-print-pre */ | |
scm__rc.d1128[32] = Scm_MakeIdentifier(SCM_SYMBOL(scm__rc.d1128[18]), Scm_FindModule(SCM_SYMBOL(scm__rc.d1128[1]), SCM_FIND_MODULE_CREATE), | |
SCM_NIL); /* even-odd#iota */ | |
scm__rc.d1128[33] = Scm_MakeIdentifier(SCM_SYMBOL(scm__rc.d1128[17]), Scm_FindModule(SCM_SYMBOL(scm__rc.d1128[1]), SCM_FIND_MODULE_CREATE), | |
SCM_NIL); /* even-odd#map */ | |
scm__rc.d1128[35] = Scm_MakeSymbol(SCM_STRING(SCM_OBJ(&scm__sc.d1129[12])),TRUE); /* debug-print-post */ | |
scm__rc.d1128[34] = Scm_MakeIdentifier(SCM_SYMBOL(scm__rc.d1128[35]), Scm_FindModule(SCM_SYMBOL(scm__rc.d1128[31]), SCM_FIND_MODULE_CREATE), | |
SCM_NIL); /* gauche.vm.debugger#debug-print-post */ | |
SCM_SET_CAR(SCM_OBJ(&scm__rc.d1128[36]), scm__rc.d1128[2]); | |
SCM_SET_CAR(SCM_OBJ(&scm__rc.d1128[38]), scm__rc.d1128[17]); | |
scm__rc.d1128[41] = Scm_MakeSymbol(SCM_STRING(SCM_OBJ(&scm__sc.d1129[13])),TRUE); /* cdr */ | |
scm__rc.d1128[40] = Scm_MakeIdentifier(SCM_SYMBOL(scm__rc.d1128[41]), Scm_FindModule(SCM_SYMBOL(scm__rc.d1128[1]), SCM_FIND_MODULE_CREATE), | |
SCM_NIL); /* even-odd#cdr */ | |
scm__rc.d1128[43] = Scm_MakeSymbol(SCM_STRING(SCM_OBJ(&scm__sc.d1129[14])),TRUE); /* null? */ | |
scm__rc.d1128[42] = Scm_MakeIdentifier(SCM_SYMBOL(scm__rc.d1128[43]), Scm_FindModule(SCM_SYMBOL(scm__rc.d1128[1]), SCM_FIND_MODULE_CREATE), | |
SCM_NIL); /* even-odd#null? */ | |
SCM_SET_CAR(SCM_OBJ(&scm__rc.d1128[44]), scm__rc.d1128[18]); | |
SCM_SET_CAR(SCM_OBJ(&scm__rc.d1128[46]), scm__rc.d1128[17]); | |
SCM_SET_CAR(SCM_OBJ(&scm__rc.d1128[50]), scm__rc.d1128[3]); | |
SCM_SET_CAR(SCM_OBJ(&scm__rc.d1128[52]), scm__rc.d1128[17]); | |
SCM_SET_CAR(SCM_OBJ(&scm__rc.d1128[54]), scm__rc.d1128[2]); | |
SCM_SET_CAR(SCM_OBJ(&scm__rc.d1128[56]), scm__rc.d1128[17]); | |
scm__rc.d1128[58] = Scm_MakeSymbol(SCM_STRING(SCM_OBJ(&scm__sc.d1129[15])),TRUE); /* %test */ | |
SCM_COMPILED_CODE(SCM_OBJ(&scm__rc.d1131[4]))->name = scm__rc.d1128[58];/* %test */ | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[5] = SCM_WORD(scm__rc.d1128[11]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[8] = SCM_WORD(scm__rc.d1128[13]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[10] = SCM_WORD(scm__rc.d1128[15]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[12] = SCM_WORD(scm__rc.d1128[9]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[19] = SCM_WORD(scm__rc.d1128[29]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[27] = SCM_WORD(scm__rc.d1128[32]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[29] = SCM_WORD(scm__rc.d1128[33]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[35] = SCM_WORD(scm__rc.d1128[34]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[42] = SCM_WORD(scm__rc.d1128[29]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[50] = SCM_WORD(scm__rc.d1128[32]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[52] = SCM_WORD(scm__rc.d1128[33]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[58] = SCM_WORD(scm__rc.d1128[34]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[64] = SCM_WORD(scm__rc.d1128[40]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[66] = SCM_WORD(scm__rc.d1128[42]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[68] = SCM_WORD(scm__rc.d1128[9]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[75] = SCM_WORD(scm__rc.d1128[29]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[82] = SCM_WORD(scm__rc.d1128[32]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[87] = SCM_WORD(scm__rc.d1128[32]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[89] = SCM_WORD(scm__rc.d1128[33]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[91] = SCM_WORD(scm__rc.d1128[33]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[97] = SCM_WORD(scm__rc.d1128[34]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[104] = SCM_WORD(scm__rc.d1128[29]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[111] = SCM_WORD(scm__rc.d1128[32]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[116] = SCM_WORD(scm__rc.d1128[32]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[118] = SCM_WORD(scm__rc.d1128[33]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[120] = SCM_WORD(scm__rc.d1128[33]); | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[41]))[124] = SCM_WORD(scm__rc.d1128[34]); | |
scm__rc.d1128[59] = Scm_MakeIdentifier(SCM_SYMBOL(scm__rc.d1128[58]), Scm_FindModule(SCM_SYMBOL(scm__rc.d1128[1]), SCM_FIND_MODULE_CREATE), | |
SCM_NIL); /* even-odd#%test */ | |
SCM_COMPILED_CODE(SCM_OBJ(&scm__rc.d1131[5]))->name = scm__rc.d1128[10];/* %toplevel */ | |
((ScmWord*)SCM_OBJ(&scm__rc.d1130[167]))[3] = SCM_WORD(scm__rc.d1128[59]); | |
Scm_VMExecuteToplevels(toplevels); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(define-module even-odd (export-all)) | |
(select-module even-odd) | |
(define (even?&odd?$ pred %zero?) | |
(define (%even? x) | |
(or (%zero? x) | |
(%odd? (pred x)))) | |
(define (%odd? x) | |
(and (not (%zero? x)) | |
(%even? (pred x)))) | |
(values %even? %odd?)) | |
(define (%test) | |
(receive (%even? %odd?) (even?&odd?$ (pa$ + -1) zero?) | |
#?=(map %odd? (iota 10)) | |
#?=(map %even? (iota 10)) | |
) | |
(receive (%even? %odd?) (even?&odd?$ cdr null?) | |
#?=(map %odd? (map iota (iota 10))) | |
#?=(map %even? (map iota (iota 10))) | |
) | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment