Creating an Array: Difference between revisions

added ol
(updated FunL)
(added ol)
Line 346:
<lang ocaml> let callback index = index * index;;
let array = Array.init 5 callback</lang>
 
==[[Ol]]==
 
There are two type of [numerical indexed] arrays in Otus Lisp. The vectors and tuples.
Vectors can by byte-vectors (aka raw vectors), and regular vectors.
 
Byte-vectors do access to elements by integer index started from 0. Vectors and tuples do access to elements by integer index started from 1.
 
<lang ol>
;; vector
(define v (vector 1 2 3 4 5 6 7 8 9))
 
(print v)
; ==> #u8(1 2 3 4 5 6 7 8 9)
 
(define vx (vector 9999999999 8888888888))
 
(print vx)
; ==> '#(9999999999 8888888888)
 
(print (ref v 3))
; ==> 4
 
(print (ref vx 2))
; ==> 8888888888
 
(print (byte-vector? v))
; ==> #true
 
(print (byte-vector? vx))
; ==> #false
</lang>
<lang ol>
;; tuples
 
(define t (tuple 1 2 3 4 5 6 7 8 9))
 
(print t)
; ==> #[1 2 3 4 5 6 7 8 9]
 
(print (ref t 7))
; ==> 7
</lang>
 
==[[Pascal]]==