Download Jar. Libraryless. Click here for Pure Java version (7458L/52K).
1 | !7 |
2 | |
3 | sclass CruddieScript { |
4 | swappable void assume(S fact) {} |
5 | S answer(S s) { null; } |
6 | |
7 | // make match function locally overridable |
8 | swappable bool match(S pat, S s, Matches m) { ret match3(pat, s, m); } |
9 | bool match(S pat, S s) { ret match(pat, s, null); } |
10 | } |
11 | |
12 | sclass ICallYou > CruddieScript { |
13 | swappable void setBotName(S name) {} |
14 | swappable S getBotName() { null; } |
15 | |
16 | S answer(S s) null { |
17 | new Matches m; |
18 | |
19 | if "I call you $name" { // fancy dollar var syntax with automatic declaration of S $name |
20 | assume("\*$name*/ is a name"); |
21 | setBotName($name); |
22 | ret "OK, my name is now \*$name*/"; |
23 | } |
24 | |
25 | if "What is your name" |
26 | ret or2(getBotName(), "I don't know"); |
27 | } |
28 | } |
29 | |
30 | p-exp { |
31 | new ICallYou s; |
32 | s.setBotName = lambda1 print; |
33 | testFunctionValues(x -> s.answer((S) x), |
34 | "I call you Horst", |
35 | "OK, my name is now Horst"); |
36 | } |
download show line numbers debug dex old transpilations
Travelled to 8 computer(s): bhatertpkbcr, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt, xrpafgyirdlv
No comments. add comment
Snippet ID: | #1027653 |
Snippet name: | CruddieScript Spike (OK) |
Eternal ID of this version: | #1027653/17 |
Text MD5: | 73bbdc0eb4a34c1295585311ad9dc9d5 |
Transpilation MD5: | e01eea9277e4a8a1426ad110f48552e4 |
Author: | stefan |
Category: | javax |
Type: | JavaX source code (desktop) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2020-03-29 20:34:08 |
Source code size: | 907 bytes / 36 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 289 / 994 |
Version history: | 16 change(s) |
Referenced in: | [show references] |