Warning: session_start(): open(/var/lib/php/sessions/sess_9bghi0jlfg51eeraupnee5q6br, 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
cprint { srecord While(IF0 condition, Runnable body) {} // basically immutable (we make a new copy for every step) // to allow evaluating states in parallel and in any order sclass GreedySplitIntoWordsCI_Multi { S s; // the input to be split TreeSet wordsSet = asCISet(words); int i = 0, last = 0; new ReverseChain out; // either we return some choices or a final result Either, LS> run() { int longestMatch = l(longestPrefixInCISet(substring(s, i), wordsSet)); if (longestMatch == 0) { // also true when we're at end of string flush(); ret eitherB(out); } ret eitherA(mapNonNulls(countBackwardsTo1(longestMatch), matchLength -> { if (!contains(wordsSet, substring(s, i, i+matchLength))) null; GreedySplitIntoWordsCI_Multi clone = shallowClone(this); clone.i = clone.last = i+longestMatch; clone.out = revChainPlus(out, substring(s, i, clone.i)); ret clone; })); } } void flush { if (i > last) { // modifying this object in spite of convention out = revChainPlus(out, substring(s, last, i)); last = i; } } } static While greedySplitIntoWordsCI_x(S s, Cl words) { }