Transpiled version (928L) is out of date.
!752 static L<S> statements = toLinesFullTrim([[ "arnold" is a "good guy". a "good guy" is not a "bad guy". a "bad guy" is not a "good guy". ]]); p { checkIs("arnold", "good guy"); checkIs("arnold", "bad guy"); } static void checkIs(S a, S b) { printF("Checking if * is a *", a, b); pcall { S answer = checkIs_impl(a, b); print(" " + answer); } } static S checkIs_impl(S a, S b) { // find direct statements L<Matches> l = findStatements(format("* is a *", a, b)); if (nempty(l)) ret "yes"; l = findStatements(format("* is not a *", a, b)); if (nempty(l)) ret "no"; // derived stuff (find all classes of a) l = findStatements(quote(a) + "is a *"); new TreeSet<S> classes; for (Matches m : l) classes.add(m.unq(0)); print("Classes found: " + structure(classes)); for (S c : classes) { if (nempty(findStatements(format("a * is a *", c, b)))) ret "yes"; if (nempty(findStatements(format("a * is not a *", c, b)))) ret "no"; } ret "unknown"; } static L<Matches> findStatements(S pat) { new L<Matches> l; for (S s : statements) { new Matches m; if (match(pat, s, m)) // todo: match quoted and identifier (arnold vs "arnold") l.add(m); } ret l; }
download show line numbers debug dex old transpilations
Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1002366 |
Snippet name: | Arnold Logic Test (works) |
Eternal ID of this version: | #1002366/1 |
Text MD5: | e8c918478f4cc7fefacfc764d260a39b |
Author: | stefan |
Category: | eleu |
Type: | JavaX source code |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2016-01-09 21:21:47 |
Source code size: | 1327 bytes / 59 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 701 / 777 |
Referenced in: | #3000382 - Answer for ferdie (>> t = 1, f = 0) |