• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revisionbecce3d8475b022a00e1323339028bb8921d1019 (tree)
Time2019-01-11 23:13:41
Authordhrname <dhrname@user...>
Commiterdhrname

Log Message

Remove the ST_setItemNode function

Change Summary

Incremental Difference

--- a/source_code/orderedpair/list/tree/nodelist/ntree.h
+++ b/source_code/orderedpair/list/tree/nodelist/ntree.h
@@ -100,11 +100,6 @@ void ST_freenode (ST_Free_Node);
100100 /*ST_Node2Node 関数型 = (ST_Node -> ST_Node) */
101101 typedef ST_Node (*ST_Node2Node)(ST_Node);
102102
103-/*ST_setItemNode 関数
104- * C言語でラムダ計算のchurch数を部分的に再現するための関数(ノード用)*/
105-ST_Node ST_setItemNode (uint_fast32_t length, ST_Node2Node f, ST_Node node);
106-
107-
108103 /*ST_getBoundVariable 関数
109104 * 関数抽象ノードabstractionの束縛変数(Bound Variable)を数値化したものを取得する
110105 * ここでいう束縛変数とは、λx.Mのときの、変数xを指す*/
--- a/source_code/shadowstar.c
+++ b/source_code/shadowstar.c
@@ -1292,16 +1292,3 @@ void ST_freenode (ST_Free_Node freelist)
12921292 free(freelist);
12931293 freelist = NULL;
12941294 }
1295-
1296-/*ST_setItemNode 関数
1297- * C言語でラムダ計算のchurch数を部分的に再現するための関数(ノード用)*/
1298-ST_Node ST_setItemNode (uint_fast32_t length, ST_Node2Node f, ST_Node node)
1299-{
1300- int32_t i;
1301- for (i = 0; i < length; i++)
1302- {
1303- /*lengthが4の場合、node = f(f(f(f(list))));*/
1304- node = (*f)(node);
1305- }
1306- return node;
1307-}
Binary files a/source_code/shadowstar.o and b/source_code/shadowstar.o differ
--- a/source_code/startest.c
+++ b/source_code/startest.c
@@ -404,7 +404,7 @@ int main(int argc, char **argv)
404404 varlist = ST_tokenize(u8"「言葉」(世界)「「涙」(謎)愛」(謎)", tokens6);
405405 btr = ST_parse(freetree, tokens6, length, varlist);
406406 assert( ST_getBoundVariable(ST_getNodeValue(btr)) == ST_getItem(varlist, 0) );
407- assert( ST_getBoundVariable(ST_getNodeValue(ST_setItemNode(1, ST_getPreviousNode, btr))) == ST_getItem(varlist, 4) );
407+ assert( ST_getBoundVariable(ST_getNodeValue(ST_getPreviousNode(btr))) == ST_getItem(varlist, 4) );
408408 lastvar = ST_getLastChild(btr);
409409 assert( ST_first(ST_getNodeValue(lastvar)) == ST_getItem(varlist, 1));
410410 lastvar = ST_getPreviousNode(lastvar);
@@ -609,6 +609,18 @@ printf("\n%d\n", i);
609609
610610 ST_freelist(varlist);
611611
612+ init_token_length(tokens7, length);
613+ varlist = ST_tokenize(u8"愛とは、「「謎」(謎)は「謎」(謎)」(謎)", tokens7);
614+ btr = ST_parse(freetree, tokens7, length, varlist);
615+ evalresult = ST_eval(varlist, btr);
616+ assert( !ST_isEmptyNode(evalresult));
617+ assert( ST_getBoundVariable(ST_getNodeValue(evalresult)) == ST_getItem(varlist, 3) );
618+ assert( ST_first(ST_getNodeValue(ST_getLastChild(evalresult))) == ST_getItem(varlist, 4) );
619+ evalresult = ST_getPreviousNode(evalresult);
620+ assert(ST_isEmptyNode(evalresult));
621+
622+ ST_freelist(varlist);
623+
612624 ST_freenode(freetree);
613625
614626
Binary files a/source_code/startest.o and b/source_code/startest.o differ