view 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 source

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'