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

40
LINES

< > BotCompany Repo | #1000500 // LCombineTwoFunctions (learner)

JavaX fragment (include)

1  
static class LCombineTwoFunctions extends LearnerImpl {
2  
  static boolean debug;
3  
  Function f, g;
4  
5  
  public void processInOut(Object in, Object out) {
6  
    if (f != null) return;
7  
    List<Function> functions = allFunctions();
8  
    
9  
    // simple version without really checking multiple candidates
10  
    for (Function f : functions) {
11  
      Object o = tryProcess(f, in);
12  
      if (o != null) {
13  
        if (debug)
14  
          debug("in=" + structure(in) + ", f=" + structure(f) + ", o=" + structure(o));
15  
        for (Function g : functions) {
16  
          Object x = tryProcess(g, o);
17  
          if (out.equals(x)) {
18  
            if (debug)
19  
              debug("bingo! " + structure(g));
20  
            this.f = f;
21  
            this.g = g;
22  
            return;
23  
          }
24  
        }
25  
      }
26  
    }
27  
  }
28  
  
29  
  public Object processIn(Object in) {
30  
    return g.process(f.process(in));
31  
  }
32  
  
33  
  static Object tryProcess(Function f, Object in) {
34  
    try {
35  
      return f.process(in);
36  
    } catch (Throwable e) {
37  
      return null;
38  
    }
39  
  }
40  
}

Author comment

Began life as a copy of #1000470

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: #1000500
Snippet name: LCombineTwoFunctions (learner)
Eternal ID of this version: #1000500/1
Text MD5: 3ac2d234ac18179bd14e8c0613853b6d
Author: stefan
Category:
Type: JavaX fragment (include)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2015-08-09 18:21:14
Source code size: 1056 bytes / 40 lines
Pitched / IR pitched: No / Yes
Views / Downloads: 588 / 1298
Referenced in: [show references]