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