Translate

martes, 27 de agosto de 2019

Datos en Factor

Sigo con Factor y sus pilas.

Factor usa datos estandar como String, números, booleans y secuencias.
Veamos :

Tenemos booleanos:

IN: scratchpad 4 2 = .
f

IN: scratchpad 4 2 > .
t

IN: scratchpad "same" "same" = .
t

IN: scratchpad "same" length "diff" length = .
t

En Factor cualquier valor excepto f es considerado como true, incluyendo 0, el string vacio o la secuencia vacia.

Factor soporta una secuencia como un tipo de datos. Se puede crear una lista con { } y los valores separados por espacio un ejemplo sería :  { 4 3 2 1 } Es necesario el espacio luego de la llaves, similar a lisp.

Los mapas son colecciones key-value, veamos un ejemplo :

{ { "one" 1 } { "two" 2 } { "three" 3 } { "four" 4 } }

Con la palabra of y at podemos acceder a el valor con una key :

IN: scratchpad { { "one" 1 } { "two" 2 } { "three" 3 } } "one" of .
1
IN: scratchpad "two" { { "one" 1 } { "two" 2 } { "three" 3 } } at .
2