git @ Cat's Eye Technologies Robin / 3e51639
Update reactor tests to use (deep) `bind-vals`. Chris Pressey 4 years ago
1 changed file(s) with 59 addition(s) and 80 deletion(s). Raw diff Collapse all Expand all
822822
823823 | (reactor (line-terminal) 0
824824 | (macro (args env)
825 | (bind-vals (event state) args
826 | (bind event-type (head event)
827 | (if (equal? event-type (literal init))
828 | (list 0
829 | (list (literal writeln) (literal ''Hello, world!''))
830 | (list (literal stop) 0))
831 | (list 0))))))
825 | (bind-vals ((event-type event-payload) state) args
826 | (if (equal? event-type (literal init))
827 | (list state
828 | (list (literal writeln) (literal ''Hello, world!''))
829 | (list (literal stop) 0))
830 | (list state)))))
832831 = Hello, world!
833832
834833 Reactors which interact with `line-terminal` receive `readln` events.
842841
843842 | (reactor (line-terminal) 0
844843 | (macro (args env)
845 | (bind-vals (event state) args
846 | (bind event-type (head event)
847 | (bind event-payload (head (tail event))
848 | (if (equal? event-type (literal readln))
849 | (list 0
850 | (list (literal writeln) event-payload))
851 | (list 0)))))))
844 | (bind-vals ((event-type event-payload) state) args
845 | (if (equal? event-type (literal readln))
846 | (list state
847 | (list (literal writeln) event-payload))
848 | (list state)))))
852849 + Cat
853850 + Dog
854851 = Cat
877874
878875 | (reactor (line-terminal) 0
879876 | (macro (args env)
880 | (bind-vals (event state) args
881 | (bind event-type (head event)
882 | (bind event-payload (head (tail event))
883 | (if (equal? event-type (literal readln))
884 | (list 0
885 | (list (literal writeln) (literal ''Line:''))
886 | (list (literal writeln) event-payload))
887 | (list 0)))))))
877 | (bind-vals ((event-type event-payload) state) args
878 | (if (equal? event-type (literal readln))
879 | (list state
880 | (list (literal writeln) (literal ''Line:''))
881 | (list (literal writeln) event-payload))
882 | (list state)))))
888883 + Cat
889884 + Dog
890885 = Line:
897892
898893 | (reactor (line-terminal) 0
899894 | (macro (args env)
900 | (bind-vals (event state) args
901 | (bind event-type (head event)
902 | (bind event-payload (head (tail event))
903 | (if (equal? event-type (literal readln))
904 | (list 0
905 | (literal what-is-this)
906 | (literal i-dont-even)
907 | (list (literal writeln) event-payload))
908 | (list 0)))))))
895 | (bind-vals ((event-type event-payload) state) args
896 | (if (equal? event-type (literal readln))
897 | (list state
898 | (literal what-is-this)
899 | (literal i-dont-even)
900 | (list (literal writeln) event-payload))
901 | (list state)))))
909902 + Cat
910903 + Dog
911904 = Cat
921914
922915 | (reactor (line-terminal) 0
923916 | (macro (args env)
924 | (bind-vals (event state) args
925 | (bind event-type (head event)
926 | (bind event-payload (head (tail event))
927 | (if (equal? event-type (literal readln))
928 | (if (equal? (head event-payload) 65)
929 | (abort 999999)
930 | (list 0 (list (literal writeln) event-payload)))
931 | (list 0)))))))
917 | (bind-vals ((event-type event-payload) state) args
918 | (if (equal? event-type (literal readln))
919 | (if (equal? (head event-payload) 65)
920 | (abort 999999)
921 | (list state (list (literal writeln) event-payload)))
922 | (list state)))))
932923 + Cat
933924 + Dog
934925 + Alligator
943934 | (subtract (eval env (head args)) (subtract 0 1))))
944935 | (reactor (line-terminal) 65
945936 | (macro (args env)
946 | (bind-vals (event state) args
947 | (bind event-type (head event)
948 | (bind event-payload (head (tail event))
949 | (if (equal? event-type (literal readln))
950 | (list (inc state) (list (literal writeln) (list state)))
951 | (list state)))))))
937 | (bind-vals ((event-type event-payload) state) args
938 | (if (equal? event-type (literal readln))
939 | (list (inc state) (list (literal writeln) (list state)))
940 | (list state)))))
952941 + Cat
953942 + Dog
954943 + Giraffe
963952 | (subtract (eval env (head args)) (subtract 0 1))))
964953 | (reactor (line-terminal) 65
965954 | (macro (args env)
966 | (bind-vals (event state) args
967 | (bind event-type (head event)
968 | (bind event-payload (head (tail event))
969 | (if (equal? event-type (literal readln))
970 | (list (inc state) (list (literal writeln) (list state)))
971 | (list state)))))))
955 | (bind-vals ((event-type event-payload) state) args
956 | (if (equal? event-type (literal readln))
957 | (list (inc state) (list (literal writeln) (list state)))
958 | (list state)))))
972959 | (reactor (line-terminal) 0
973960 | (macro (args env)
974 | (bind-vals (event state) args
975 | (bind event-type (head event)
976 | (bind event-payload (head (tail event))
977 | (if (equal? event-type (literal readln))
978 | (list 0
979 | (list (literal writeln) event-payload))
980 | (list 0)))))))
961 | (bind-vals ((event-type event-payload) state) args
962 | (if (equal? event-type (literal readln))
963 | (list state
964 | (list (literal writeln) event-payload))
965 | (list state)))))
981966 + Cat
982967 + Dog
983968 + Giraffe
994979 | (subtract (eval env (head args)) (subtract 0 1))))
995980 | (reactor (line-terminal) 65
996981 | (macro (args env)
997 | (bind-vals (event state) args
998 | (bind event-type (head event)
999 | (bind event-payload (head (tail event))
1000 | (if (equal? event-type (literal readln))
1001 | (if (equal? state 68)
1002 | (list state (list (literal stop) 0))
1003 | (list (inc state) (list (literal writeln) event-payload)))
1004 | (list state)))))))
982 | (bind-vals ((event-type event-payload) state) args
983 | (if (equal? event-type (literal readln))
984 | (if (equal? state 68)
985 | (list state (list (literal stop) 0))
986 | (list (inc state) (list (literal writeln) event-payload)))
987 | (list state)))))
1005988 + Cat
1006989 + Dog
1007990 + Giraffe
10171000 | (subtract (eval env (head args)) (subtract 0 1))))
10181001 | (reactor (line-terminal) 65
10191002 | (macro (args env)
1020 | (bind-vals (event state) args
1021 | (bind event-type (head event)
1022 | (bind event-payload (head (tail event))
1023 | (if (equal? event-type (literal readln))
1024 | (if (equal? state 68)
1025 | (list state (list (literal stop) 0))
1026 | (list (inc state) (list (literal writeln) event-payload)))
1027 | (list state)))))))
1003 | (bind-vals ((event-type event-payload) state) args
1004 | (if (equal? event-type (literal readln))
1005 | (if (equal? state 68)
1006 | (list state (list (literal stop) 0))
1007 | (list (inc state) (list (literal writeln) event-payload)))
1008 | (list state)))))
10281009 | (reactor (line-terminal) 65
10291010 | (macro (args env)
1030 | (bind-vals (event state) args
1031 | (bind event-type (head event)
1032 | (bind event-payload (head (tail event))
1033 | (if (equal? event-type (literal readln))
1034 | (list (inc state) (list (literal writeln) (list state)))
1035 | (list state)))))))
1011 | (bind-vals ((event-type event-payload) state) args
1012 | (if (equal? event-type (literal readln))
1013 | (list (inc state) (list (literal writeln) (list state)))
1014 | (list state)))))
10361015 + Cat
10371016 + Dog
10381017 + Giraffe