Warning: session_start(): open(/var/lib/php/sessions/sess_f1usm39r8ipqo187fog79vdf0h, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
// English:
// x is contained in a mech list whose name contains "noun" => x is a noun
concept Result {
int count;
S output;
MapSO vars;
S result; // yes or no
}
cmodule FindingNouns > DynCRUD {
S freeText;
transient new LPair suggestionsAndVars;
transient JButton btnYes, btnNo;
transient Pair current; // proposal and variables used
start-thread {
db();
LS emits = getEmits_tee(r { javaxSimple(); });
MapSO lastVars = null;
for (S s : emits) {
MapSO vars = parseLineFromEmitVariables(s);
if (vars != null) lastVars = vars;
else
suggestionsAndVars.add(pair(s, lastVars));
}
runByUser();
}
visual jtabs("Dialog" := centerAndSouthWithMargins(dm_printLogView(),
westAndCenterWithMargin(
jline(
btnYes = jbutton("Yes", rThread yes),
btnNo = jbutton("No", rThread no)),
onEnter(dm_textField freeText(), rThread { storeResult(freeText) }))), "Results" := super);
void runByUser {
current = random(suggestionsAndVars);
if (current == null) ret;
printWithPrecedingNL(current.a);
print("Correct?");
enableButtons(btnYes, btnNo);
}
void yes { storeResult("yes"); }
void no { storeResult("no"); }
void storeResult(S result) enter {
if (current == null) ret;
print("Storing result: " + result);
Result r = uniq(Result, output := current.a, vars := current.b, +result);
cset(r, count := r.count+1);
disableButtons(btnYes, btnNo);
//sleepSeconds(1);
runByUser();
}
void javaxSimple() {
for (S listName : mechListNames())
if (cic(listName, "noun"))
for (S s : mL(listName)) {
emitVariables(+listName, +s);
emit(quote(s) + " is a noun");
}
}
}