Mercurial > hg > jgplsrc
diff test/g422.ijs @ 0:e0bbaa717f41 draft default tip
lol J
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Mon, 25 Nov 2013 11:56:30 -0500 |
parents | |
children |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/test/g422.ijs @@ -0,0 +1,330 @@ +NB. /:y ----------------------------------------------------------------- + +NB. Boolean +a =: 1=?10 5$2 +i =: /:a +k =: ?10$5 +i =&# a +(/:~i) -: i. #a +(/:k#a) -: ;i{(i.&.>k)+&.>+/\}:0,k +(,0) -: /:0 +'' -: /:(0,?(?5)$10)$0 +(i.#a) -: /:a =: ((?10),0)$0 +(/:a) -: /:,.~a=:?400$2 +(/:a) -: /:,.~a=:? 1$2 +((+/a=/0 1)#0 1) -: /:~a=:?1000$2 + +f=: 3 : 0 " 0 + a=: (1000,y) ?@$ 2 + k=: (#a) ?@$ 5 + i=: /:a + assert. i -: /:a{'01' + assert. i -: /: #.a + assert. (/:k#a) -: ; i { (i.&.>k)+&.>+/\}:0,k + 1 +) + +f >: i.16 + +NB. literal +a =: a.{~32+?10 5$95 +i =: /:a +k =: ?10$5 +i =&# a +(/:~i) -: i.#a +(/:k#a) -: ;i{(i.&.>k)+&.>+/\_1}.0,k +(,0) -: /:'g' +'' -: /:(0,?(?5)$10)$0 +(i.#a) -: /:a =: ((?10),0)$0 +(/:a) -: /:,.~ a=:a.{~?400$256 +(/:a) -: /:,.~ a=:a.{~?1 $256 +((+/x=/ a.)# a.) -: /:~x=:a.{~?1000$#a. + +f=: 3 : 0 " 0 + a=: a.{~(1000,y) ?@$ #a. + k=: (#a) ?@$ 5 + assert. (/:k#a) -: ; (/:a) { (i.&.>k)+&.>+/\}:0,k + 1 +) + +f >:i.16 + +NB. integer +a =: ?10 5$100 +i =: /:a +k =: ?10$5 +i=&#a +(/:~i) -: i.#a +(/:k#a) -: ;i{(i.&.>k)+&.>+/\_1}.0,k +(,0) -: /:5 +'' -: /:(0,?(?5)$10)$5 +(i.#a) -: /:a =: ((?10),0)$5 +*./a>:}:0, a=:/:~?1000$1e2 +*./a>:}:0, a=:/:~?1000$1e3 +*./a>:}:0, a=:/:~?1000$1e4 +*./a>:}:0, a=:/:~?1000$1e9 +(/: 100#.a) -: /: a=: ?1000 2$100 +(/: 100#.a) -: /: a=: ?1000 2$ 5 + +a=: (--:m) + 1000 ?@$ m=:IF64{2e9 9e18 +y=: (/:a) { a +*./ (}:y) <: }.y + +m=:<._1+2^31 +1 0 -: /: m,0 +0 1 -: /: 0,m +m=:<.-2^31 +0 1 -: /: m,0 +1 0 -: /: 0,m + +((i.!#a) A. i.#a) (/:@[ -: /:@:{)"1 2 a=: 88#"0 i.1 +((i.!#a) A. i.#a) (/:@[ -: /:@:{)"1 2 a=: 88#"0 i.2 +((i.!#a) A. i.#a) (/:@[ -: /:@:{)"1 2 a=: 88#"0 i.3 +((i.!#a) A. i.#a) (/:@[ -: /:@:{)"1 2 a=: 88#"0 i.4 +((i.!#a) A. i.#a) (/:@[ -: /:@:{)"1 2 a=: 88#"0 i.5 +((i.!#a) A. i.#a) (/:@[ -: /:@:{)"1 2 a=: 88#"0 i.6 + +((i.!#a) A. i.#a) (] -: /:~@:{)"1 2 a=: /:~ (88$8),"1?1 8$5e6 +((i.!#a) A. i.#a) (] -: /:~@:{)"1 2 a=: /:~ (88$8),"1?2 8$5e6 +((i.!#a) A. i.#a) (] -: /:~@:{)"1 2 a=: /:~ (88$8),"1?3 8$5e6 +((i.!#a) A. i.#a) (] -: /:~@:{)"1 2 a=: /:~ (88$8),"1?4 8$5e6 +((i.!#a) A. i.#a) (] -: /:~@:{)"1 2 a=: /:~ (88$8),"1?5 8$5e6 +((i.!#a) A. i.#a) (] -: /:~@:{)"1 2 a=: /:~ (88$8),"1?6 8$5e6 + +f=: 3 : 0 " 0 + a=: (100,y) ?@$ 200 + k=: (#a) ?@$ 5 + assert. (/:k#a) -: ; (/:a) { (i.&.>k)+&.>+/\}:0,k + 1 +) + +f >: i.16 + +(/:v) -: /: a.{~ v=: ?10000$#a. +(/:v) -: /: a.{~ v=: ?66000$#a. + +(/:v) -: /: a.{~ 2000 + v=: _2000 + ?10000$#a. +(/:v) -: /: a.{~ 2000 + v=: _2000 + ?66000$#a. + +(/:v) -: /: a.{~ 128 + v=: _128 + ?10000$#a. +(/:v) -: /: a.{~ 128 + v=: _128 + ?66000$#a. + +(/:"1 v) -: /:"1 a.{~ v=: ?2 3 10000$#a. +(/:"1 v) -: /:"1 a.{~ v=: ?2 3 66000$#a. + +(/:"1 v) -: /:"1 a.{~ 2000 + v=: _2000 + ?2 3 10000$#a. +(/:"1 v) -: /:"1 a.{~ 2000 + v=: _2000 + ?2 3 66000$#a. + +(/:"1 v) -: /:"1 a.{~ 128 + v=: _128 + ?2 3 10000$#a. +(/:"1 v) -: /:"1 a.{~ 128 + v=: _128 + ?2 3 66000$#a. + +(/:v) -: /: o. v=: (?~20000){(?10000$65536),32768*?10000$65536 +(/:v) -: /: (-#v){.0 (3!:3) v + +NB. floating point +a =: o._40+?10 5$100 +i =: /:a +k =: ?10$5 +i =&# a +(/:~i) -: i.#a +(/:k#a) -: ;i{(i.&.>k)+&.>+/\_1}.0,k +(,0) -: /:2.718 +'' -: /:(0,?(?5)$10)$3.14 +(i.#x) -: /:x=: ((?10),0)$3.14 +*./x>:}:0, x=:/:~o.?1000$1e2 + +v=:?100$25 +(/:v) -: /:v-25 +(/:v) -: /:v+100 +(/:v) -: /:o.v +(/:v) -: /:,.~v + +(/:v) -: /: 0.01*v=: ?10000$50000 +(/:v) -: /: 0.01*v=: ?66000$50000 + +(/:v) -: /: 0.01*v=: - 1+ ?10000$50000 +(/:v) -: /: 0.01*v=: - 1+ ?66000$50000 + +(/:v) -: /: 0.01*v=: _25000+?10000$50000 +(/:v) -: /: 0.01*v=: _25000+?66000$50000 + +(/:"1 v) -: /:"1 o. v=: ?2 3 10000$50000 +(/:"1 v) -: /:"1 o. v=: ?2 3 66000$50000 + +(/:"1 v) -: /:"1 o. v=: - 1+ ?2 3 10000$50000 +(/:"1 v) -: /:"1 o. v=: - 1+ ?2 3 66000$50000 + +(/:"1 v) -: /:"1 o. v=: _25000+?2 3 10000$50000 +(/:"1 v) -: /:"1 o. v=: _25000+?2 3 66000$50000 + +NB. complex +a =: r._40+?10 5$100 +i =: /:a +k =: ?10$5 +i =&# a +i -: /: +.a +(/:~i) -: i. #a +(/:k#a) -: ; i { (i.&.>k) +&.> +/\ }:0,k +(,0) -: /: 3j4 +'' -: /: (0,?(?5)$10)$3j4 +(i.#x) -: /: x=: ((?10),0)$3j4 +(i.12) -: /: r.12 5$100 + +NB. boxed +(/:a) -: /: <"0 a=: ?20 7$1000 +(/:a) -: /: <"1 a +(/:a) -: /: <&.> a +(/:a) -: /: <&.> a +(/:a) -: /: > a=: _50+&.>(?10$20)$&.>100 +(/:a) -: /: > a=:o.&.>_50+&.>(?10$20)$&.>100 +(/:a) -: /: > a=:r.&.>_50+&.>(?10$20)$&.>100 +(/:a) -: /: > a=:(<"0 ?5$2),(<"0 ?5$100),(<"0 o.?5$100),<"0 r.?5$100 +(/:a) -: /: > a=:(?~#a){a +(/:a) -: /: i.&.>a=:?~30 + +f=: 3 : 0 + assert. (/: a) -: /: <"0 a=.?(100,y)$3 + assert. (/:"1 a) -: /:"1 <"0 a + assert. (/:"2 a) -: /:"2 <"0 a + assert. (/: a) -: /: <"1 a + assert. (/:"2 a) -: /:"1 <"1 a + assert. (/:"3 a) -: /:"2 <"1 a + 1 +) + +*./@f"0 >: i.3 10 +*./@f"1 >: 5 6#:i.3 10 +*./@f"1 >:5 3 2#:i.3 10 + +g=: 3 : '0 1 -: /: ,:~ t=. y$t,<t=.1 2 3;''abc'' ' +g"0 i.3 10 + +(/:"1 a) -: /:"1 <"0 a=:? 20 17$1000 +(/:"2 a) -: /:"2 <"0 a=:?4 20 17$1000 + +le=: 0: = {.@/: +x=: o.&.>_50+&.>(?10$20)$&.>100 +y=: ;:'Cogito, ergo sum. Sui generis. Sine qua non.' +z=: <"0 >5!:1 <'le' +2 le\ /:~a=: (?~#x,y,z) { x,y,z + +0 1 2 -: /: x=:3j4; 'Ex ungue leonem'; <<5 6 7 +2 1 0 -: /: |. x +0 1 2 -: /: x=:(i.0); 'Ex ungue leonem'; <<5 6 7 +2 1 0 -: /: |. x +0 1 2 -: /: x=:''; 'Ex ungue leonem'; <<5 6 7 +2 1 0 -: /: |. x +0 1 2 -: /: x=:(o.i.0); 'Ex ungue leonem'; <<5 6 7 +2 1 0 -: /: |. x +0 1 2 -: /: x=:(j.i.0); 'Ex ungue leonem'; <<5 6 7 +2 1 0 -: /: |. x +0 1 2 -: /: x=:(0$a:); 'Ex ungue leonem'; <<5 6 7 +2 1 0 -: /: |. x +0 1 2 -: /: x=:'' ; (i.0) ; <0$a: +0 1 2 -: /: |. x + +a=: < 2 3 $ 1 2 3 4 5 6 +b=: < 3 2 $ 1 2 5 6 3 4 +c=: < 1 3 $ 1 2 3 +d=: < 1 2 $ 1 2 +e=: < 2 2 $ 1 2 5 6 + +(i.5) -: /: d,e,b,c,a +(/:"1 p) -: /:"1 (d,e,b,c,a){~p=: (i.!5) A. i.5 + +NB. extended integer +(/: -: /: @:x:) a=: _500+?100 $1000 +(/: -: /:@:(<"0)@:x:) a +(/: -: /: @:x:) a=: _500+?100 4$1000 +(/: -: /:@:(<"1)@:x:) a + +NB. rationals +(/: -: /: @:x:) a=: -:_500+?100 $1000 +(/: -: /:@:(<"0)@:x:) a +(/: -: /: @:x:) a=: -:_500+?100 4$1000 +(/: -: /:@:(<"1)@:x:) a + +'index error' -: 3 4 5 /: etx 1 2 3 4 + + +NB. /:y on integer lists ------------------------------------------------ + +v=:?100$25 +(/:v) -: /:v-25 +(/:v) -: /:v+100 +(/:v) -: /:o.v +(/:v) -: /:,.~v + +1 2 3 4 5 0 -: /: v=: 2e9 _2e9 1 2 3 4 +_2e9 1 2 3 4 2e9 -: /:~v + +x=: <._1+2^31 +y=: _1-x +v=:x,y,1 2 3 4 +(/:v) -: 1 2 3 4 5 0 +(/:~v) -: y,1 2 3 4,x + + +NB. /:"r ---------------------------------------------------------------- + +g =: 3 : ('/:y'; ':'; 'x/:y') + +(/:"0 -: g"0) y=:?2 3 4 17$2 +(/:"1 -: g"1) y +(/:"2 -: g"2) y +(/:"3 -: g"3) y +(/:"4 -: g"4) y + +(/:"0 -: g"0) y=:a.{~?2 3 4 17$#a. +(/:"1 -: g"1) y +(/:"2 -: g"2) y +(/:"3 -: g"3) y +(/:"4 -: g"4) y +(/:"0 -: g"0) y=:a.{~?2 3 4 18$#a. +(/:"1 -: g"1) y +(/:"2 -: g"2) y +(/:"3 -: g"3) y +(/:"4 -: g"4) y + +(/:"0 -: g"0) y=:?2 3 4 17$34 +(/:"1 -: g"1) y +(/:"2 -: g"2) y +(/:"3 -: g"3) y +(/:"4 -: g"4) y +(/:"0 -: g"0) y=:?2 3 4 17$+:*/2 3 4 17 +(/:"1 -: g"1) y +(/:"2 -: g"2) y +(/:"3 -: g"3) y +(/:"4 -: g"4) y +(/:"0 -: g"0) y=:_50+?2 3 4 17$100 +(/:"1 -: g"1) y +(/:"2 -: g"2) y +(/:"3 -: g"3) y +(/:"4 -: g"4) y + +(/:"0 -: g"0) y=:o.?2 3 4 17$34 +(/:"1 -: g"1) y +(/:"2 -: g"2) y +(/:"3 -: g"3) y +(/:"4 -: g"4) y + +x=:?20 3$100 +x (/:"2 2 -: g"2 2) y=:?2 20 3$100 +x (/:"2 3 -: g"2 3) y=:?20 2 3$100 +x (/:"1 1 -: g"1 1) y=:o.?3$100 +x (/:"1 0 -: g"1 0) y=:?1000 +x (/:"1 0 -: g"1 0) y=:a.{~?20$256 + +(/:~"1 -: g~"1) y=:?4 17$2 +(/:~"1 -: g~"1) y=:a.{~32+?17 4$95 +(/:~"1 -: g~"1) y=:?2 7 16$100 +(/:~"1 -: g~"1) y=:o.?4 17$1232 + +(2 3 4 1$0) -: /:"0 i.2 3 4 +(0 0 0 1$0) -: /:"0 i.0 0 0 + +'index error' -: (i.4) /: etx i.5 + +4!:55 ;:'a b c d e f g ge i k le m p v x y z' + +