func init() { QNames := []term.TemplateID{Plus, Times, Minus, Equal, Less, More, LessOrEqual, MoreOrEqual, Divide, } QFuncs := [](func(dynamics.Dwimmer, *term.SettingT, ...term.T) term.T){ dynamics.Args2(addNative), dynamics.Args2(multiplyNative), dynamics.Args2(subtractNative), dynamics.Args2(testEquality), dynamics.Args2(testLess), dynamics.Args2(testMore), dynamics.Args2(testLessOrEqual), dynamics.Args2(testMoreOrEqual), dynamics.Args2(divideNative), } for i := range QNames { s := term.InitS() s = dynamics.ExpectQuestion(s, QNames[i], "Q", "a", "b") s = dynamics.AddSimple(s, term.ViewS(term.Sr("a"))) s.AppendTemplate(term.Int(0).Head()) s = dynamics.AddSimple(s, term.ViewS(term.Sr("b"))) s.AppendTemplate(term.Int(0).Head()) dynamics.AddNative(s, QFuncs[i], "a", "b") } }
func init() { applyState = term.InitS() applyState = dynamics.ExpectQuestion(applyState, Apply, "Q1", "f", "x") applyState = dynamics.AddSimple(applyState, term.ViewS(term.Sr("f"))) applyState2 = term.InitS() applyState2 = dynamics.ExpectQuestion(applyState2, Apply2, "f", "x", "y") applyState2 = dynamics.AddSimple(applyState2, term.ViewS(term.Sr("f"))) }
func init() { s := term.InitS() s = dynamics.ExpectQuestion(s, Explicit, "Q", "t") s = dynamics.AddSimple(s, term.ViewS(term.Sr("t"))) s.AppendTemplate(term.Quoted{}.Head()) dynamics.AddNative(s, dynamics.Args1(makeExplicit), "t") }
func init() { var s, t *term.SettingS s = term.InitS() s.AppendTemplate(Fold, "f", "l", "x") s = dynamics.AddSimple(s, term.ViewS(term.Sr("l"))) t = s.Copy().AppendTemplate(lists.Empty) t = dynamics.AddSimple(t, term.ReturnS(term.Sr("x"))) t = s.Copy().AppendTemplate(lists.Cons, "head", "tail") t = dynamics.AddSimple(t, term.AskS(Apply2.S(term.Sr("f"), term.Sr("x"), term.Sr("head")))) t = dynamics.ExpectAnswer(t, core.Answer, "A1", "y") t = dynamics.AddSimple(t, term.AskS(Fold.S(term.Sr("f"), term.Sr("tail"), term.Sr("y")))) t = dynamics.ExpectAnswer(t, core.Answer, "A2", "A") t = dynamics.AddSimple(t, term.ReturnS(term.Sr("A"))) t = s.Copy().AppendTemplate(lists.Snoc, "init", "last") t = dynamics.AddSimple(t, term.AskS(Fold.S(term.Sr("f"), term.Sr("init"), term.Sr("x")))) t = dynamics.ExpectAnswer(t, core.Answer, "A1", "y") t = dynamics.AddSimple(t, term.AskS(Apply2.S(term.Sr("f"), term.Sr("y"), term.Sr("last")))) t = dynamics.ExpectAnswer(t, core.Answer, "A2", "A") t = dynamics.AddSimple(t, term.ReturnS(term.Sr("A"))) t = s.Copy().AppendTemplate(lists.Concat, "a", "b") t = dynamics.AddSimple(t, term.AskS(Fold.S(term.Sr("f"), term.Sr("a"), term.Sr("x")))) t = dynamics.ExpectAnswer(t, core.Answer, "A1", "y") t = dynamics.AddSimple(t, term.AskS(Fold.S(term.Sr("f"), term.Sr("b"), term.Sr("y")))) t = dynamics.ExpectAnswer(t, core.Answer, "A2", "A") t = dynamics.AddSimple(t, term.ReturnS(term.Sr("A"))) t = s.Copy().AppendTemplate(lists.Singleton, "y") t = dynamics.AddSimple(t, term.AskS(Apply2.S(term.Sr("f"), term.Sr("x"), term.Sr("y")))) t = dynamics.ExpectAnswer(t, core.Answer, "A1", "A") t = dynamics.AddSimple(t, term.ReturnS(term.Sr("A"))) }
func init() { var s, t *term.SettingS s = ApplicationSetting() s.AppendTemplate(Map, "g") s = dynamics.AddSimple(s, term.ViewS(term.Sr("x"))) t = s.Copy().AppendTemplate(lists.Empty) t = dynamics.AddSimple(t, term.ReturnS(core.Answer.S(lists.Empty.S()))) t = s.Copy().AppendTemplate(lists.Singleton, "y") t = dynamics.AddSimple(t, term.AskS(Apply.S(term.Sr("g"), term.Sr("y")))) t = dynamics.ExpectAnswer(t, core.Answer, "A1", "newy") t = dynamics.AddSimple(t, term.ReturnS(lists.Singleton.S(term.Sr("y")))) t = s.Copy().AppendTemplate(lists.Cons, "head", "tail") t = dynamics.AddSimple(t, term.AskS(Apply.S(term.Sr("g"), term.Sr("head")))) t = dynamics.ExpectAnswer(t, core.Answer, "A1", "newhead") t = dynamics.AddSimple(t, term.AskS(Apply.S(term.Sr("f"), term.Sr("tail")))) t = dynamics.ExpectAnswer(t, core.Answer, "A2", "newtail") t = dynamics.AddSimple(t, term.ReturnS(lists.Cons.S(term.Sr("newhead"), term.Sr("newtail")))) t = s.Copy().AppendTemplate(lists.Snoc, "init", "last") t = dynamics.AddSimple(t, term.AskS(Apply.S(term.Sr("g"), term.Sr("last")))) t = dynamics.ExpectAnswer(t, core.Answer, "A1", "newlast") t = dynamics.AddSimple(t, term.AskS(Apply.S(term.Sr("f"), term.Sr("init")))) t = dynamics.ExpectAnswer(t, core.Answer, "A2", "newinit") t = dynamics.AddSimple(t, term.ReturnS(lists.Snoc.S(term.Sr("newinit"), term.Sr("newlast")))) t = s.Copy().AppendTemplate(lists.Concat, "a", "b") t = dynamics.AddSimple(t, term.AskS(Apply.S(term.Sr("f"), term.Sr("a")))) t = dynamics.ExpectAnswer(t, core.Answer, "A1", "newa") t = dynamics.AddSimple(t, term.AskS(Apply.S(term.Sr("f"), term.Sr("b")))) t = dynamics.ExpectAnswer(t, core.Answer, "A2", "newb") t = dynamics.AddSimple(t, term.ReturnS(lists.Concat.S(term.Sr("newa"), term.Sr("newb")))) }
func init() { s := term.InitS() s = dynamics.ExpectQuestion(s, GetTemplate, "Q", "t") s = dynamics.AddSimple(s, term.ViewS(term.Sr("t"))) t := s.Copy().AppendTemplate(term.Quoted{}.Head()) t = dynamics.AddSimple(t, term.AskS(Explicit.S(term.Sr("t")))) t = dynamics.ExpectAnswer(t, core.Answer, "A", "explicit") t = dynamics.AddSimple(t, term.AskS(GetTemplate.S(term.Sr("explicit")))) t = dynamics.ExpectAnswer(t, core.Answer, "A2", "result") t = dynamics.AddSimple(t, term.ReturnS(core.Answer.S(term.Sr("result")))) t = s.Copy().AppendTemplate(QuotedQuoteT, "q") dynamics.AddSimple(t, term.ReturnS(core.Answer.S( term.Sc(Template(term.Quoted{}.Head())), ))) t = s.Copy().AppendTemplate(QuotedIntT, "q") dynamics.AddSimple(t, term.ReturnS(core.Answer.S( term.Sc(Template(term.Int(0).Head())), ))) t = s.Copy().AppendTemplate(QuotedStrT, "q") dynamics.AddSimple(t, term.ReturnS(core.Answer.S( term.Sc(Template(term.Str(0).Head())), ))) t = s.Copy().AppendTemplate(QuotedWrapperT, "q") dynamics.AddSimple(t, term.ReturnS(core.Answer.S( term.Sc(Template(term.Wrap(nil).Head())), ))) t = s.Copy().AppendTemplate(QuotedCompoundT, "template", "args") t = dynamics.AddSimple(t, term.ReturnS(core.Answer.S(term.Sr("template")))) }
func init() { s := term.InitS() s = dynamics.ExpectQuestion(s, GetSetting, "Q", "s") s = dynamics.AddSimple(s, term.ViewS(term.Sr("s"))) s.AppendTemplate(QuotedSettingT, "lines", "arguments", "children") s = dynamics.AddSimple(s, term.ReturnS(core.Answer.S(QuotedSetting.S(term.Sr("lines"))))) }
func init() { s := term.InitS() s = dynamics.ExpectQuestion(s, Len, "Q", "s") s = dynamics.AddSimple(s, term.ViewS(term.Sr("s"))) s.AppendTemplate(term.Str("").Head()) dynamics.AddNative(s, dynamics.Args1(length), "s") s = term.InitS() s = dynamics.ExpectQuestion(s, Bracketed, "Q", "s") s = dynamics.AddSimple(s, term.ViewS(term.Sr("s"))) s.AppendTemplate(term.Str("").Head()) dynamics.AddNative(s, dynamics.Args1(bracketed), "s") s = term.InitS() s = dynamics.ExpectQuestion(s, Concat, "Q", "a", "b") s = dynamics.AddSimple(s, term.ViewS(term.Sr("a"))) s.AppendTemplate(term.Str("").Head()) s = dynamics.AddSimple(s, term.ViewS(term.Sr("b"))) s.AppendTemplate(term.Str("").Head()) dynamics.AddNative(s, dynamics.Args2(concat), "a", "b") dynamics.AddNativeResponse(GetChar, 2, dynamics.Args2(getChar)) }
func init() { s := term.InitS() s = dynamics.ExpectQuestion(s, LastAndInitQ, "Q", "l") s = dynamics.AddSimple(s, term.ViewS(term.Sr("l"))) t := s.Copy().AppendTemplate(Snoc, "init", "last") t = dynamics.AddSimple(t, term.ReturnS(LastAndInit.S(term.Sr("init"), term.Sr("last")))) t = s.Copy().AppendTemplate(Singleton, "x") t = dynamics.AddSimple(t, term.ReturnS(LastAndInit.S(term.Sr("x"), Empty.S()))) t = s.Copy().AppendTemplate(Empty) t = dynamics.AddSimple(t, term.ReturnS(IsEmpty.S())) t = s.Copy().AppendTemplate(Cons, "first", "rest") t = dynamics.AddSimple(t, term.AskS(LastAndInitQ.S(term.Sr("rest")))) tt := dynamics.ExpectAnswer(t.Copy(), LastAndInit, "A", "last", "init") tt = dynamics.AddSimple(tt, term.ReturnS(LastAndInit.S( term.Sr("last"), Cons.S(term.Sr("first"), term.Sr("init")), ))) tt = dynamics.ExpectAnswer(t.Copy(), IsEmpty, "A2") tt = dynamics.AddSimple(tt, term.ReturnS(LastAndInit.S(term.Sr("first"), Empty.S()))) t = s.Copy().AppendTemplate(Concat, "a", "b") t = dynamics.AddSimple(t, term.AskS(LastAndInitQ.S(term.Sr("b")))) tt = dynamics.ExpectAnswer(t, IsEmpty, "A00") tt = dynamics.AddSimple(tt, term.AskS(LastAndInitQ.S(term.Sr("a")))) dynamics.AddSimple(dynamics.ExpectAnswer(tt, IsEmpty, "A3"), term.ReturnS(IsEmpty.S())) dynamics.AddSimple( dynamics.ExpectAnswer(tt, LastAndInit, "A4", "last", "init"), term.ReturnS(LastAndInit.S(term.Sr("last"), term.Sr("init"))), ) tt = dynamics.ExpectAnswer(t, LastAndInit, "A7", "last", "init") dynamics.AddSimple(tt, term.ReturnS(LastAndInit.S( term.Sr("last"), Concat.S(term.Sr("a"), term.Sr("init")), ))) }
func init() { s := dynamics.ExpectQuestion(term.InitS(), SettingForChannel, "Q", "c") s = dynamics.AddSimple(s, term.ViewS(term.Sr("c"))) s = s.AppendTemplate(term.Channel{}.Head()) dynamics.AddNative(s, dynamics.Args1(settingForChannel), "c") }
func init() { //dynamics.AddNativeResponse(FallThrough, 1, dynamics.Args1(fallThrough)) dynamics.AddNativeResponse(DisplayTemplate, 1, dynamics.Args1(displayTemplate)) dynamics.AddNativeResponse(GetActionInput, 2, dynamics.Args2(getInput)) dynamics.AddNativeResponse(ParseInputAsAction, 2, dynamics.Args2(parseInput)) var s *term.SettingS s = dynamics.ExpectQuestion(term.InitS(), FallThrough, "Q", "setting") s = dynamics.AddSimple(s, term.AskS(GetTemplate.S(term.Sr("setting")))) s = dynamics.ExpectAnswer(s, core.Answer, "A", "template") s = dynamics.AddSimple(s, term.AskS(ElicitActionQ.S(term.Sr("template")))) s = dynamics.ExpectAnswer(s, core.Answer, "A2", "action") s = dynamics.AddSimple(s, term.AskS(MakeTransition.S(term.Sr("action")))) s = dynamics.ExpectAnswer(s, core.Answer, "A3", "transition") s = dynamics.AddSimple(s, term.AskS(ShouldRecord.S(term.Sr("action")))) s = dynamics.ExpectAnswer(s, core.Answer, "AA", "should") s = dynamics.AddSimple(s, term.ViewS(term.Sr("should"))) s.AppendTemplate(core.Yes) s = dynamics.AddSimple(s, term.AskS(SetTransition.S(term.Sr("transition"), term.Sr("template")))) s = dynamics.ExpectAnswer(s, core.OK, "A4") s = dynamics.AddSimple(s, term.ReturnS(TakeTransition.S(term.Sr("transition")))) s = dynamics.ExpectQuestion(term.InitS(), ShouldRecord, "Q", "action") s = dynamics.AddSimple(s, term.ViewS(term.Sr("action"))) s.AppendTemplate(represent.QuotedActionC, "act", "args", "indices") s = dynamics.AddSimple(s, term.ViewS(term.Sr("act"))) for act, template := range represent.ActionLookup { t := s.Copy().AppendTemplate(template) switch act { case term.Replace, term.Correct, term.Replay: dynamics.AddSimple(t, term.ReturnS(core.Answer.S(core.No.S()))) default: dynamics.AddSimple(t, term.ReturnS(core.Answer.S(core.Yes.S()))) } } s = dynamics.ExpectQuestion(term.InitS(), MakeTransition, "Q", "action") s = dynamics.AddSimple(s, term.ReturnS(core.Answer.S(represent.QuotedSimpleTransition.S(term.Sr("action"))))) s = dynamics.ExpectQuestion(term.InitS(), GetTemplate, "Q", "setting") t := dynamics.AddSimple(s, term.ViewS(term.Sr("setting"))) s = t.Copy().AppendTemplate(represent.QuotedTemplate, "parts") s = dynamics.AddSimple(s, term.ReturnS(core.Answer.S(term.Sr("setting")))) s = t.Copy().AppendTemplate(represent.QuotedSettingT, "template", "args") s = dynamics.AddSimple(s, term.ReturnS(core.Answer.S(term.Sr("template")))) s = dynamics.ExpectQuestion(term.InitS(), ElicitActionQ, "Q", "setting") s = dynamics.AddSimple(s, term.AskS(GetTemplate.S(term.Sr("setting")))) s = dynamics.ExpectAnswer(s, core.Answer, "A", "template") s = dynamics.AddSimple(s, term.AskS(ElicitActionQTemplate.S(term.Sr("template")))) s = dynamics.ExpectAnswer(s, core.Answer, "A2", "action") s = dynamics.AddSimple(s, term.ReturnS(core.Answer.S(term.Sr("action")))) s = dynamics.ExpectQuestion(term.InitS(), ElicitActionQTemplate, "Q", "template") s = dynamics.AddSimple(s, term.AskS(similarity.GetHints.S(term.Sr("template")))) s = dynamics.ExpectAnswer(s, core.Answer, "A", "hints") s = dynamics.AddSimple(s, term.AskS(similarity.GetTools.S(term.Sr("template")))) s = dynamics.ExpectAnswer(s, core.Answer, "A2", "tools") s = dynamics.AddSimple(s, term.AskS(ElicitActionQTemplateHints.S( term.Sr("template"), term.Sr("hints"), term.Sr("tools"), ))) s = dynamics.ExpectAnswer(s, core.Answer, "A3", "action") s = dynamics.AddSimple(s, term.ReturnS(core.Answer.S(term.Sr("action")))) s = dynamics.ExpectQuestion(term.InitS(), ElicitActionQTemplateHints, "Q", "template", "hints", "tools") s = dynamics.AddSimple(s, term.AskS(meta.Clear.S())) s = dynamics.ExpectAnswer(s, core.OK, "A") s = dynamics.AddSimple(s, term.AskS(DisplayTemplate.S(term.Sr("template")))) s = dynamics.ExpectAnswer(s, Names, "A2", "names") s = dynamics.AddSimple(s, term.AskS(similarity.DisplayTools.S(term.Sr("tools")))) s = dynamics.ExpectAnswer(s, similarity.ToolMapping, "A3", "toolmap") s = dynamics.AddSimple(s, term.AskS(similarity.DisplayHints.S(term.Sr("hints"), term.Sr("names")))) s = dynamics.ExpectAnswer(s, similarity.HintStrings, "A4", "hintstrings") s = dynamics.AddSimple(s, term.AskS(GetActionInput.S(term.Sr("hintstrings"), term.Sr("toolmap")))) s = dynamics.ExpectAnswer(s, core.Answer, "A5", "input") s = dynamics.AddSimple(s, term.AskS(ParseInputAsAction.S(term.Sr("input"), term.Sr("names")))) t = dynamics.ExpectAnswer(s.Copy(), core.Answer, "A6", "action") t = dynamics.AddSimple(t, term.ReturnS(core.Answer.S(term.Sr("action")))) t = dynamics.ExpectAnswer(s.Copy(), GoMeta, "A6") t = dynamics.AddSimple(t, term.MetaS()) dynamics.AddNativeResponse(ActionQ, 1, dynamics.Args1(findAction)) dynamics.AddNativeResponse(SetTransition, 2, dynamics.Args2(setTransition)) dynamics.AddNativeResponse(GetTransition, 1, dynamics.Args1(getTransition)) dynamics.AddNativeResponse(GetContinuations, 1, dynamics.Args1(getContinuations)) dynamics.AddNativeResponse(AllSettings, 0, dynamics.Args0(allSettings)) }