Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

94
LINES

< > BotCompany Repo | #1009226 // Core List Bot [should work]

JavaX source code [tags: use-pretranspiled] - run with: x30.jar

Libraryless. Click here for Pure Java version (7584L/50K/168K).

1  
!7
2  
3  
concept TheList {
4  
  S name;
5  
  new L<S> entries;
6  
  
7  
  void add(S entry) {
8  
    entries.add(entry);
9  
    change();
10  
  }
11  
}
12  
13  
concept Selection {
14  
  TheList list;
15  
}
16  
17  
static TheList list;
18  
19  
p {
20  
  dbIndexing(TheList, 'name);
21  
  list = uniq(Selection).list;
22  
  if (list == null) selectList("cool things");
23  
  if (isMainProgram()) botSleep();
24  
}
25  
26  
synchronized answer {
27  
  if "select *" {
28  
    selectList($1);
29  
    ret "OK, has " + n(theList().entries, "entry");
30  
  }
31  
  
32  
  if "which" {
33  
    ret list.name;
34  
  }
35  
  
36  
  if "add *" {
37  
    theList().add($1);
38  
    theList().change();
39  
    ret "OK, has position " + l(theList().entries);
40  
  }
41  
  
42  
  if "add * at *" {
43  
    int i = parseInt($2)-1;
44  
    theList().entries.add(i, $1);
45  
    theList().change();
46  
    ret "OK";
47  
  }
48  
  
49  
  if "remove *" {
50  
    int i = theList().entries.indexOf($1);
51  
    if (i < 0) ret "Not in list";
52  
    else {
53  
      theList().entries.remove(i);
54  
      theList().change();
55  
    }
56  
    ret "OK, removed from position " + (i+1);
57  
  }
58  
  
59  
  if "length"
60  
    ret lstr(theList().entries);
61  
    
62  
  if "entry *" {
63  
    S entry = get(theList().entries, parseInt($1)-1);
64  
    ret entry == null ? "Nuttn" : "Entry: " + quote(entry);
65  
  }
66  
  
67  
  if "fix lol" {
68  
    fixLOL();
69  
    ret "OK";
70  
  }
71  
}
72  
73  
static TheList theList() {
74  
  ret list;
75  
}
76  
77  
svoid selectList(S name) {
78  
  if (!hasConcept(TheList, +name)) {
79  
    lol().add(name);
80  
    lol().change();
81  
  }
82  
  list = uniq(TheList, +name);
83  
  cset(uniq(Selection), +list);
84  
}
85  
86  
// the "list of lists"
87  
static TheList lol() {
88  
  ret uniq(TheList, name := "lol");
89  
}
90  
91  
svoid fixLOL {
92  
  lol().entries = collect(list(TheList), 'name);
93  
  lol().change();
94  
}

Author comment

Began life as a copy of #1009225

download  show line numbers  debug dex  old transpilations   

Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt

No comments. add comment

Snippet ID: #1009226
Snippet name: Core List Bot [should work]
Eternal ID of this version: #1009226/13
Text MD5: fade12829c4b02fd799559757e8d5971
Transpilation MD5: 484563b99a450e50dc028ca711a21f98
Author: stefan
Category: javax / a.i.
Type: JavaX source code
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2017-07-19 04:33:28
Source code size: 1687 bytes / 94 lines
Pitched / IR pitched: No / No
Views / Downloads: 356 / 463
Version history: 12 change(s)
Referenced in: [show references]