summaryrefslogtreecommitdiffhomepage
path: root/es-es/whip-es.html.markdown
diff options
context:
space:
mode:
Diffstat (limited to 'es-es/whip-es.html.markdown')
-rw-r--r--es-es/whip-es.html.markdown255
1 files changed, 0 insertions, 255 deletions
diff --git a/es-es/whip-es.html.markdown b/es-es/whip-es.html.markdown
deleted file mode 100644
index 7c2f4bd2..00000000
--- a/es-es/whip-es.html.markdown
+++ /dev/null
@@ -1,255 +0,0 @@
----
-language: whip
-contributors:
- - ["Tenor Biel", "http://github.com/L8D"]
-translators:
- - ["Daniel Zendejas", "https://github.com/DanielZendejas"]
-author: Tenor Biel
-author_url: http://github.com/L8D
-filename: whip-es.lisp
-lang: es-es
----
-Tutorial de Whip en español.
-
-Whip es un dialecto de LISP hecho para escribir código y conceptos
-simples. Ha tomado prestado bastante de la sintaxis de Haskell
-(un lenguaje no relacionado).
-
-Esta documentación fue escrita por el creador del lenguaje
-
-```scheme
-; Los comentarios son como en LISP, con punto y coma...
-
-; La mayoría de las sentencias de primer nivel están dentro de
-; "formas". Una forma no es más que cosas dentro de paréntesis
-no_en_la_forma
-(en_la_form)
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; 1. Números, Strings y Operadores
-
-;Whip tiene un tipo para números (es el estándar 64-bit IEEE 754 double, de JS)
-3 ; => 3
-1.5 ; => 1.5
-
-; Las funciones son llamadas si son el primer elemento de una forma
-(funcion_llamada argumentos)
-
-; La mayoría de los operadores se hacen con funciones
-; Toda la aritmética básica es bastante estándar
-(+ 1 1) ; => 2
-(- 2 1) ; => 1
-(* 1 2) ; => 2
-(/ 2 1) ; => 2
-; incluso el módulo
-(% 9 4) ; => 1
-; división impar al estilo de JavaScript.
-(/ 5 2) ; => 2.5
-
-; Las formas anidadas funcionan como se espera.
-(* 2 (+ 1 3)) ; => 8
-
-; Hay un tipo booleano.
-true
-false
-
-; Los Strings son creados con comillas dobles ".
-"Hola mundo"
-
-; Los caracteres solos se declaran con comillas simples '.
-'a'
-
-; La negación usa la función 'not'.
-(not true) ; => false
-(not false) ; => true
-
-; La mayoría de las funcions que no vienen de Haskell tienen
-; atajos. La función 'not' también se puede declarar con '!'.
-(! (! true)) ; => true
-
-; La igualdad es `equal` o `=`.
-(= 1 1) ; => true
-(equal 2 1) ; => false
-
-; Por ejemplo, la desigualdad sería combinar la función 'not' con
-; la función de igualdad
-(! (= 2 1)) ; => true
-
-; Más comparaciones
-(< 1 10) ; => true
-(> 1 10) ; => false
-; y su contraparte textual.
-(lesser 1 10) ; => true
-(greater 1 10) ; => false
-
-; Los Strings pueden concatenarse con la función +.
-(+ "Hola " "mundo!") ; => "Hello world!"
-
-; También puedes usar las comparativas de JavaScript
-(< 'a' 'b') ; => true
-; ...y la coerción de tipos
-(= '5' 5)
-
-; La función 'at' o @ accesa a los caracteres dentro de los strings,
-; empezando en 0.
-(at 0 'a') ; => 'a'
-(@ 3 "foobar") ; => 'b'
-
-; También están las variables `null` and `undefined`.
-null; usado para indicar una falta de valor deliberada.
-undefined; usado para indicar un valor que aún no está definido.
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; 2. Variables, Listas y Diccionarios
-
-; Las variables son declaradas con las funciones `def` o `let`.
-; Las variables que aún no son asignadas tendrán el valor `undefined`.
-(def mi_variable 5)
-; `def` asignará la variable al contexto global.
-; `let` asignará la variable al contexto local,
-; y tiene una sintaxis distinta.
-(let ((mi_variable 5)) (+ mi_variable 5)) ; => 10
-(+ mi_variable 5) ; = undefined + 5 => undefined
-
-; Las listas son arreglos de valores de cualquier tipo.
-; Básicamente, son formas sin funciones al inicio.
-(1 2 3) ; => [1, 2, 3] (sintaxis JavaScript)
-
-; Los diccionarios son el equivalente en Whip de los 'objetos' de JavaScript,
-; los 'dicts' de Python o los 'hashes' de Ruby: una colección desordenada
-; de pares llave-valor
-{"llave1" "valor1" "llave2" 2 3 3}
-
-; Las llaves son sólo valores, identificadores, números o strings.
-(def mi_diccionario {mi_llave "mi_valor" "mi otra llave" 4})
-; Pero con Whip, los diccionarios son leidos así:
-; "llave" "espacio en blanco" "valor" "espacio en blanco"
-{"llave" "valor"
-"otra llave"
-1234
-}
-
-; Las definiciones de los diccionarios pueden accesarse con la función @
-; (como los strings y las listas)
-(@ "mi otra llave" mi_diccionario) ; => 4
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; 3. Logica y secuencias de control
-
-; La funcion `if` es bastante simple, aunque distinta que en otros lenguajes.
-(if true "regresa esto si es true" "regresa esto si es false")
-; => "regresa esto si es true"
-
-; Y para el operador ternario `?`
-(? false true false) ; => false
-
-? `both` es un 'y' lógico, mientras que la función `either` es un 'o'.
-(both true true) ; => true
-(both true false) ; => false
-(either true false) ; => true
-(either false false) ; => false
-; Y sus atajos son '&' y '^' respectivamente
-; & => both
-; ^ => either
-(& true true) ; => true
-(^ false true) ; => true
-
-;;;;;;;;;
-; Lambdas
-
-; Las Lambdas en Whip son declaradas con las funciones `lambda` o `->`.
-; Las funciones regulares en realidad sólo son lambdas con nombre.
-(def mi_funcion (-> (x y) (+ (+ x y) 10)))
-; | | | |
-; | | | valor regresado(estas son las variables argumentos)
-; | | argumentos
-; | declaración de lambda
-; |
-; nombre de la lambda
-
-(mi_funcion 10 10) ; = (+ (+ 10 10) 10) => 30
-
-; Obviamente, todas las lambdas por definición son anónimas y
-; técnicamente siempre usadas anónimamente. Redundancia.
-((lambda (x) x) 10) ; => 10
-
-;;;;;;;;;;;;;;;;
-; Comprensiones
-
-; `range` o `..` genera una lista de números que comprende
-; cada entero dentro de los argumentos.
-(range 1 5) ; => (1 2 3 4 5)
-(.. 0 2) ; => (0 1 2)
-
-; `map` aplica su primer argumento (que debe ser una función)
-; al siguiente argumento (que es una lista).
-(map (-> (x) (+ x 1)) (1 2 3)) ; => (2 3 4)
-
-; Reducir
-(reduce + (.. 1 5))
-; equivale a
-((+ (+ (+ 1 2) 3) 4) 5)
-
-; Nota: map y reduce no tienen atajos.
-
-; `slice` o `\` es idéntico a la función .slice() de JavaScript
-; Pero toma la lista del primer argumento, no del último.
-(slice (.. 1 5) 2) ; => (3 4 5)
-(\ (.. 0 100) -5) ; => (96 97 98 99 100)
-
-; `append` o `<<` se explica solo.
-(append 4 (1 2 3)) ; => (1 2 3 4)
-(<< "bar" ("foo")) ; => ("foo" "bar")
-
-; Length se explica solo.
-(length (1 2 3)) ; => 3
-(_ "foobar") ; => 6
-
-;;;;;;;;;;;;;;;
-; Elementos de Haskell
-
-; Primer elemento en una lista
-(head (1 2 3)) ; => 1
-
-; Lista del segundo elemento al último en una lista
-(tail (1 2 3)) ; => (2 3)
-
-; Último elemento en una lista
-(last (1 2 3)) ; => 3
-
-; Contrario a `tail`
-(init (1 2 3)) ; => (1 2)
-
-; Lista del primer elemento al argumento
-(take 1 (1 2 3 4)) ; (1 2)
-
-; Contrario a `take`
-(drop 1 (1 2 3 4)) ; (3 4)
-
-; Valor más pequeño de una lista
-(min (1 2 3 4)) ; 1
-
-; Valor más grande de una lista
-(max (1 2 3 4)) ; 4
-
-; Comprobar que el elemento está en la lista
-(elem 1 (1 2 3)) ; true
-(elem "foo" {"foo" "bar"}) ; true
-(elem "bar" {"foo" "bar"}) ; false
-
-; Invertir el orden de la lista
-(reverse (1 2 3 4)) ; => (4 3 2 1)
-
-; Comprobar si un elemento es par o impar
-(even 1) ; => false
-(odd 1) ; => true
-
-; Separar string en una lista de strings, separados por espacios
-(words "foobar nachos cheese") ; => ("foobar" "nachos" "cheese")
-; Juntar lista de strings.
-(unwords ("foo" "bar")) ; => "foobar"
-(pred 21) ; => 20
-(succ 20) ; => 21
-```
-
-Para más información, revisa el [repositorio](http://github.com/L8D/whip)