Procházet zdrojové kódy

TEST.添加字表操作测试

RegMs If před 4 roky
rodič
revize
ab31b92d4b
4 změnil soubory, kde provedl 84 přidání a 126 odebrání
  1. 6 0
      a.mua
  2. 1 0
      b.mua
  3. 77 126
      in1
  4. binární
      mua

+ 6 - 0
a.mua

@@ -0,0 +1,6 @@
+make "f [ [ ] [ print "a ] ]
+make "pi 3.141592654
+make "length [ [ x ] [ if isempty :x [ return 0 ] [ return add length butfirst :x 1 ] ] ]
+make "reverse [ [ x ] [ if isempty :x [ return :x ] [ if islist :x [ return join reverse butfirst :x first :x ] [ return word reverse butfirst :x first :x ] ] ] ]
+make "find [ [ lst x ] [ if isempty :lst [ return false ] [ if eq first :lst :x [ return true ] [ return find butfirst :lst :x ] ] ] ]
+make "index [ [ lst x ] [ if isempty :lst [ return -1 ] [ if eq first :lst :x [ return 0 ] [ make "i index butfirst :lst :x if eq :i -1 [ return -1 ] [ return add :i 1 ] ] ] ] ]

+ 1 - 0
b.mua

@@ -0,0 +1 @@
+print "bbbb

+ 77 - 126
in1

@@ -1,146 +1,97 @@
-make "f [[x] [
-  make "g [[y] [return add :x :y]]
-  return g 42
-]]
-
-print f 233
-
-make "f1 [[x] [
-    make "g1 [[y] [return add :x :y]]
-    return :g1
-  ]
+print sentence [a] "bc
+print sentence [a [a bd]] [c]
+print sentence "a "be
+print list "ab [b]
+print list [aa] [b]
+print list [ab] "b
+print join [ac] "b
+print join [ad] [b]
+print join [ak [b]] [c]
+print first [ae b c]
+print first [[af] b c]
+print first [[aa b] b c]
+print first [[ae [b]] c]
+print first "habc
+print first 3123
+print first true
+print islist butfirst [a b]
+print butfirst [a [aa b]]
+print butfirst [a [fa b] c]
+print butfirst [a b g c]
+print butfirst [a [a b] [c] k]
+print butfirst "abcdd
+print butlast [aa [b c]]
+print butlast [as b c]
+print butlast [ad b [c d] e]
+make "length
+[
+	[x]
+	[
+		if isempty :x
+			[return 0]
+			[return add length butfirst :x 1]
+	]
 ]
-make "c1 f1 42
-make "c2 f1 24
-print c1 1
-print c2 2
-
-make "curry_two [[f x] [
-  return [[y] [return f :x :y]]
-]]
-make "f2 [[x y] [
-  return add :x :y
-]]
-make "f2p curry_two :f2 42
-
-print f2p 233
-
-make "fact_base [
-    [rec x]
-    [
-        if eq :x 0
-        [return 1]
-        [return mul :x rec :rec sub :x 1]
-    ]
-]
-
-make "fact_simple [
+print length [1 [2 3] 4 5]
+print join [] [2 3 5]
+make "reverse [
     [x]
-    [return fact_base :fact_base :x]
-]
-
-print fact_simple 5
-
-make "fact_nice [
-    [rec]
     [
-        make "g [
-            [x]
+        if isempty :x
+            [return :x]
             [
-                if eq :x 0
-                [return 1]
-                [
-                    make "tmp rec :rec
-                    return mul :x tmp sub :x 1
-                ]
+                if islist :x
+                    [return join reverse butfirst :x first :x]
+                    [return word reverse butfirst :x first :x]
             ]
-        ]
-        return :g
     ]
 ]
-
-make "fact_curry fact_nice :fact_nice
-print fact_curry 5
-
-make "fact_nicer [
-    [rec]
+print reverse [1 2 3 4]
+print reverse [1 [2 3 3] 4 5]
+make "find [
+    [lst x]
     [
-        make "g [
-            [x]
+        if isempty :lst
+            [return false]
             [
-                if eq :x 0
-                [return 1]
-                [return mul :x rec sub :x 1]
+                if eq first :lst :x
+                    [return true]
+                    [return find butfirst :lst :x]
             ]
-        ]
-        return :g
     ]
 ]
-
-make "z_comb [
-    [g]
+print find [1 2 3] 3
+print find [1 2 3] 5
+print find [1 [2 3] 4] 2
+make "index [
+    [lst x]
     [
-        make "t [
-            [r]
+        if isempty :lst
+            [return -1]
             [
-                make "y [
-                    [yy]
+                if eq first :lst :x
+                    [return 0]
                     [
-                        make "tmp r :r
-                        return tmp :yy
+                        make "i index butfirst :lst :x
+                        if eq :i -1
+                            [return -1]
+                            [return add :i 1]
                     ]
-                ]
-                return g :y
             ]
-        ]
-        return t :t
-    ]
-]
-
-make "fact_z z_comb :fact_nicer
-print fact_z 5
-
-make "logic_test [[b] [return b 1 0]]
-
-make "F_TRUE [[x y] [return :x]]
-make "F_FALSE [[x y] [return :y]]
-
-make "F_AND [[p q] [return p :q :p]]
-make "F_OR [[p q] [return p :p :q]]
-make "F_NOT [[p] [return p :F_FALSE :F_TRUE]]
-
-print logic_test F_AND F_AND :F_TRUE :F_TRUE :F_FALSE
-print logic_test F_AND F_OR :F_TRUE :F_FALSE :F_FALSE
-print logic_test F_NOT F_AND :F_TRUE :F_FALSE :F_TRUE
-print logic_test F_OR F_NOT :F_TRUE F_NOT :F_FALSE :F_TRUE
-
-make "church_test [
-    [n]
-    [
-        make "inc [[x] [return add :x 1]]
-        return n :inc 0
     ]
 ]
-
-make "O [
-    [f x]
-    [return :x]
-]
-
-make "succ [
-    [n]
-    [
-        make "t [
-            [f x]
-            [
-                make "tt n :f :x
-                return f :tt
-            ]
-        ]
-        return :t
-    ]
+print index [1 2 3] 1
+print index [1 [2 3] 4] 2
+make "f
+[
+	[]
+	[print "a]
 ]
-
-print church_test succ :O
-print church_test succ succ :O
-print church_test succ succ succ :O
+print "bbbb
+save "a.mua
+erall
+print isname "f
+print isname "run
+load "a.mua
+print isname "f
+load "b.mua

binární
mua