// http://geniepro.livejournal.com/2840.html $use StdIO Arithm Compare Box List Dos; $func Main = e; Main = (0 L ((Woody 10) (Rex 20) (Hamm 25) (Buzz 5)) ()) :: t.state, >, :: e, >, :: e, >; //$func? Search e.state = e.answer; //Search { // e (sn R () (e2) e3)@t0 e = t0; // { $accum { // e (sn L (e1) (e2) e3)@t0 e, e1 : $accum e4 (t5 sn5) e6 (t7 sn7) e8, // (> R (e4 e6 e8) (e2 t5 t7) t0); // e (sn R (v1) (e2) e3)@t0 e, e2 : $accum e4 (t5 sn5) e6 (t7 sn7) e8, // (> L (v1 t5 t7) (e2 e6 e8) t0); // } :: t.state, // ;; } : { $accum // e (sn t (e1) (e2) e3)@t0 e, <"<=" sn 60>, t0; // } :: e.state = // ; //}; // //$func? Search2 t.state = e.answer; // //Search2 { // (sn R ( ) (e2) e3)@t0, <"<=" sn 60> = t0; // (sn t (e1) (e2) e3)@t0, <">" sn 60> = ; // (sn L (e1) (e2) e3)@t0, e1 : $accum e4 (t5 sn5) e6 (t7 sn7) e8, // > R (e4 e6 e8) (e2 t5 t7) t0)>; // (sn R (v1) (e2) e3)@t0, e2 : $accum e4 (t5 sn5) e6 (t7 sn7) e8, // > L (v1 t5 t7) (e2 e6 e8) t0)>; //}; // //$func? Search3 t.state = e.answer; // //Search3 { // (sn R ( ) (e2) e3)@t0, <"<=" sn 60> = t0; // (sn t (e1) (e2) e3)@t0, <">" sn 60> = ; // { $accum { // (sn L (e1) (e2) e3)@t0, e1 : $accum e4 (t5 sn5) e6 (t7 sn7) e8, // (> R (e4 e6 e8) (e2 t5 t7) t0); // (sn R (v1) (e2) e3)@t0, e2 : $accum e4 (t5 sn5) e6 (t7 sn7) e8, // (> L (v1 t5 t7) (e2 e6 e8) t0); // }; } :: e.state, ; //}; // // //$func? Search4 e.state = e.answer; //$func? Step4 t.state = e.answer; // //Search4 e.state, >; // //Step4 { // (sn t (e1) (e2) e3)@t0, <">" sn 60> = ; // (sn R ( ) (e2) e3)@t0 = t0; // $accum { // e (sn L (e1) (e2) e3)@t0 e, e1 : $accum e4 (t5 sn5) e6 (t7 sn7) e8, // (> R (e4 e6 e8) (e2 t5 t7) t0); // e (sn R (v1) (e2) e3)@t0 e, e2 : $accum e4 (t5 sn5) e6 (t7 sn7) e8, // (> L (v1 t5 t7) (e2 e6 e8) t0); // }; //}; $box State; $func? Search5 e.state = e.answer; Search5 v.state, , : { t1 e = t1; = >; }; $func? Step5 t.state = e.answer; Step5 t0, t0 : { (sn t (e1) (e2) e3), = ; (sn R ( ) (e2) e3) = t0; { (sn L (e1) (e2) e3), e1 : e4 (t5 sn5) e6 (t7 sn7) e8, > R (e4 e6 e8) (e2 (t5 sn5) (t7 sn7)) t0)>, $fail; (sn L (e1) (e2) e3), e1 : e4 (t5 sn5) e6, R (e4 e6) (e2 (t5 sn5)) t0)>, $fail; (sn R (v1) (e2) e3), e2 : e4 (t5 sn5) e6 (t7 sn7) e8, > L (v1 (t5 sn5) (t7 sn7)) (e4 e6 e8) t0)>, $fail; (sn R (v1) (e2) e3), e2 : e4 (t5 sn5) e6, L (v1 (t5 sn5)) (e4 e6) t0)>, $fail; t = ; }; }; $func? Search2 t.state = e.answer; Search2 t0, t0 : { (sn t (e1) (e2) e3), = ; (sn R ( ) (e2) e3) = t0; (sn L (e1) (e2) e3), e1 : e4 (t5 sn5) e6 (t7 sn7) e8, > R (e4 e6 e8) (e2 (t5 sn5) (t7 sn7)) t0)> : v.res, v.res; (sn L (e1) (e2) e3), e1 : e4 (t5 sn5) e6, R (e4 e6) (e2 (t5 sn5)) t0)> : v.res, v.res; (sn R (v1) (e2) e3), e2 : e4 (t5 sn5) e6 (t7 sn7) e8, > L (v1 (t5 sn5) (t7 sn7)) (e4 e6 e8) t0)> : v.res, v.res; (sn R (v1) (e2) e3), e2 : e4 (t5 sn5) e6, L (v1 (t5 sn5)) (e4 e6) t0)> : v.res, v.res; t0 = ; };