Skip to content

Commit

Permalink
[hy/*] proofread/update
Browse files Browse the repository at this point in the history
  • Loading branch information
verhovsky committed Apr 25, 2024
1 parent 8fb3356 commit cbb2eb4
Show file tree
Hide file tree
Showing 4 changed files with 129 additions and 167 deletions.
67 changes: 30 additions & 37 deletions es-es/hy-es.html.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,13 @@ lang: es-es

Hy es un lenguaje de Lisp escrito sobre Python. Esto es posible convirtiendo
código Hy en un árbol abstracto de Python (ast). Por lo que, esto permite a
Hy llamar a código Pyhton nativo y viceversa.
Hy llamar a código Python nativo y viceversa.

Este tutorial funciona para hy >= 0.9.12

```clojure
```hylang
;; Esto es una intrucción muy básica a Hy, como la del siguiente enlace
;; http://try-hy.appspot.com
;; https://hylang.org/try-hy
;;
; Comentarios usando punto y coma, como en otros LISPS
; Comentarios usando punto y coma, como en otros Lisps

;; Nociones básicas de expresiones
; Los programas List están hechos de expresiones simbólicas como la siguiente
Expand All @@ -28,21 +26,21 @@ Este tutorial funciona para hy >= 0.9.12

;; Tipos de datos simples
; Todos los tipos de datos simples son exactamente semejantes a sus homólogos
; en python
; en Python
42 ; => 42
3.14 ; => 3.14
True ; => True
4+10j ; => (4+10j) un número complejo

; Vamos a comenzar con un poco de arimética simple
(+ 4 1;=> 5
; el operador es aplicado a todos los argumentos, como en otros lisps
; el operador es aplicado a todos los argumentos, como en otros Lisps
(+ 4 1 2 3;=> 10
(- 2 1;=> 1
(* 4 2;=> 8
(/ 4 1;=> 4
(% 4 2;=> 0 o operador módulo
; la exponenciación es representada por el operador ** como python
; la exponenciación es representada por el operador ** como Python
(** 3 2;=> 9
; las funciones anidadas funcionan como lo esperado
(+ 2 (* 4 2)) ;=> 10
Expand All @@ -58,9 +56,9 @@ True ; => True
(def *foo* 42)
;; otros tipos de datos de almacenamiento
; strings, lists, tuples & dicts
; estos son exactamente los mismos tipos de almacenamiento en python
; estos son exactamente los mismos tipos de almacenamiento en Python
"hello world" ;=> "hello world"
; las operaciones de cadena funcionan de manera similar en python
; las operaciones de cadena funcionan de manera similar en Python
(+ "hello " "world";=> "hello world"
; Las listas se crean usando [], la indexación comienza en 0
(setv mylist [1 2 3 4])
Expand Down Expand Up @@ -96,31 +94,31 @@ True ; => True
(map (fn [x] (* x x)) [1 2 3 4]) ;=> [1 4 9 16]

;; operaciones de secuencia
; hy tiene algunas utilidades incluidas para operaciones de secuencia, etc.
; Hy tiene algunas utilidades incluidas para operaciones de secuencia, etc.
; recuperar el primer elemento usando 'first' o 'car'
(setv mylist [1 2 3 4])
(setv mydict {"a" 1 "b" 2})
(first mylist;=> 1

; corte listas usando 'slice'
(slice mylist 1 3;=> [2 3]
; corte listas usando 'cut'
(cut mylist 1 3;=> [2 3]

; obtener elementos de una lista o dict usando 'get'
(get mylist 1;=> 2
(get mydict "b";=> 2
; la lista de indexación comienza a partir de 0, igual que en python
; la lista de indexación comienza a partir de 0, igual que en Python
; assoc puede definir elementos clave/índice
(assoc mylist 2 10; crear mylist [1 2 10 4]
(assoc mydict "c" 3; crear mydict {"a" 1 "b" 2 "c" 3}
; hay muchas otras funciones que hacen que trabajar con secuencias sea 
; hay muchas otras funciones que hacen que trabajar con secuencias sea
; entretenido

;; Python interop
;; los import funcionan exactamente como en python
;; los import funcionan exactamente como en Python
(import datetime)
(import [functools [partial reduce]]; importa fun1 e fun2 del module1
(import [matplotlib.pyplot :as plt]; haciendo una importación en foo como en bar
; todos los métodos de python incluídos etc. son accesibles desde hy
(import functools [partial reduce]; importa fun1 e fun2 del module1
(import matplotlib.pyplot :as plt; haciendo una importación en foo como en bar
; todos los métodos de Python incluídos etc. son accesibles desde Hy
; a.foo(arg) is called as (.foo a arg)
(.split (.strip "hello world  ")) ;=> ["hello" "world"]

Expand All @@ -132,12 +130,9 @@ True ; => True

; anidar múltiples cláusulas 'if else if' con condiciones
(cond
 [(= someval 42)
  (print "Life, universe and everything else!")]
 [(> someval 42)
  (print "val too large")]
 [(< someval 42)
  (print "val too small")])
 (= someval 42) (print "Life, universe and everything else!")
 (> someval 42) (print "val too large")
 (< someval 42) (print "val too small"))

; declaraciones de grupo con 'do', son ejecutadas secuencialmente
; formas como defn tienen un 'do' implícito
Expand All @@ -155,22 +150,20 @@ True ; => True

;; clases
; las clases son definidas de la siguiente manera
(defclass Wizard [object]
  [[--init-- (fn [self spell]
             (setv self.spell spell; init the attr magic
             None)]
   [get-spell (fn [self]
              self.spell)]])

;; acesse hylang.org
(defclass Wizard [object]
  (defn __init__ [self spell]
    (setv self.spell spell))

  (defn get-spell [self]
    self.spell))
```

### Otras lecturas

Este tutorial apenas es una introducción básica para hy/lisp/python.
Este tutorial apenas es una introducción básica para Hy/Lisp/Python.

Docs Hy: [http://hy.readthedocs.org](http://hy.readthedocs.org)
Docs Hy: [https://hylang.org/hy/doc](https://hylang.org/hy/doc)

Repo Hy en GitHub: [http://github.com/hylang/hy](http://github.com/hylang/hy)
Repo Hy en GitHub: [https://github.com/hylang/hy](https://github.com/hylang/hy)

Acceso a freenode irc con #hy, hashtag en twitter: #hylang
65 changes: 29 additions & 36 deletions fr-fr/hy-fr.html.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,12 @@ translators:
lang: fr-fr
---

Hy est un dialecte du lisp bâti par dessus python. Il fonctionne en
convertissant le code hy en un arbre de syntaxe abstraite de python (ast).
Ceci permet à hy d'appeler du code python et à python d'appeler du code hy.
Hy est un dialecte du Lisp bâti par dessus Python. Il fonctionne en
convertissant le code Hy en un arbre de syntaxe abstraite de Python (ast).
Ceci permet à Hy d'appeler du code Python et à Python d'appeler du code Hy.

Ce tutoriel fonctionne pour hy > 0.9.12

```clojure
;; Ceci est une introduction simple à hy, pour un tutoriel rapide aller à
```hylang
;; Ceci est une introduction simple à Hy, pour un tutoriel rapide aller à
;; http://try-hy.appspot.com
;;
; Les commentaires se font avec des points-virgules, comme les autres LISPS
Expand All @@ -29,7 +27,7 @@ Ce tutoriel fonctionne pour hy > 0.9.12

;; les types de données simples
; Tous les types de données simples sont exactement similaires à leurs
; homologues de python
; homologues de Python
42 ; => 42
3.14 ; => 3.14
True ; => True
Expand All @@ -43,7 +41,7 @@ True ; => True
(* 4 2) ;=> 8
(/ 4 1) ;=> 4
(% 4 2) ;=> 0 l'opérateur modulo
; l'opérateur d'élévation à la puissance est représenté par ** comme en python
; l'opérateur d'élévation à la puissance est représenté par ** comme en Python
(** 3 2) ;=> 9
; les expressions imbriquées vont se comporter comme on s'y attend
(+ 2 (* 4 2)) ;=> 10
Expand All @@ -60,17 +58,17 @@ True ; => True
(def *foo* 42)
;; d'autres types de conteneurs
; les chaînes, les listes, les tuples et dicts
; ce sont exactement les mêmes que les types de conteneurs de python
; ce sont exactement les mêmes que les types de conteneurs de Python
"hello world" ;=> "hello world"
; les opérations sur les chaînes fonctionnent comme en python
; les opérations sur les chaînes fonctionnent comme en Python
(+ "hello " "world") ;=> "hello world"
; les listes sont créés en utilisant [], l'indexation commence à 0
(setv mylist [1 2 3 4])
; les tuples sont des structures de données immuables
(setv mytuple (, 1 2))
; les dictionnaires sont des paires clé-valeur
(setv dict1 {"key1" 42 "key2" 21})
; :nom peut être utilisé pour définir des mots clés dans hy qui peuvent être
; :nom peut être utilisé pour définir des mots clés dans Hy qui peuvent être
; utilisées comme clés
(setv dict2 {:key1 41 :key2 20})
; utilisez `get' pour obtenir l'élément à l'index / clé
Expand Down Expand Up @@ -101,30 +99,30 @@ True ; => True
(map (fn [x] (* x x)) [1 2 3 4]) ;=> [1 4 9 16]

;; Opérations sur les séquences
; hy a des utilitaires natifs pour les opérations sur les séquences etc.
; Hy a des utilitaires natifs pour les opérations sur les séquences etc.
; récupérez le premier élément en utilisant `first' ou `car'
(setv mylist [1 2 3 4])
(setv mydict {"a" 1 "b" 2})
(first mylist) ;=> 1

; découpez les listes en utilisant slice
(slice mylist 1 3) ;=> [2 3]
; découpez les listes en utilisant cut
(cut mylist 1 3) ;=> [2 3]

; obtenez les éléments d'une liste ou dict en utilisant `get'
(get mylist 1) ;=> 2
(get mydict "b") ;=> 2
; l'indexation des listes commence à 0 comme en python
; l'indexation des listes commence à 0 comme en Python
; assoc peut définir les éléments à clés/index
(assoc mylist 2 10) ; makes mylist [1 2 10 4]
(assoc mydict "c" 3) ; makes mydict {"a" 1 "b" 2 "c" 3}
; il ya tout un tas d'autres fonctions de base qui rend le travail avec
; les séquences amusant

;; les importations fonctionnent comme en pyhtonn
;; les importations fonctionnent comme en Python
(import datetime)
(import [functools [partial reduce]]) ; importe fun1 et fun2 de module1
(import [matplotlib.pyplot :as plt]) ; faire une importation foo comme bar
; toutes les méthodes natives de python sont accessibles à partir de hy
(import functools [partial reduce]) ; importe fun1 et fun2 de module1
(import matplotlib.pyplot :as plt) ; faire une importation foo comme bar
; toutes les méthodes natives de Python sont accessibles à partir de Hy
; a.foo(arg) est appelé (.foo a arg)
(.split (.strip "hello world ")) ;=> ["hello" "world"]

Expand All @@ -136,12 +134,9 @@ True ; => True

; imbriquez plusieurs if else if avec le mot clé cond
(cond
[(= someval 42)
(print "Life, universe and everything else!")]
[(> someval 42)
(print "val too large")]
[(< someval 42)
(print "val too small")])
(= someval 42) (print "Life, universe and everything else!")
(> someval 42) (print "val too large")
(< someval 42) (print "val too small"))

; groupez les expressions avec do, ceux-ci seront executé séquentiellemnt
; les expressions comme defn ont un do implicite
Expand All @@ -155,26 +150,24 @@ True ; => True
"sherlock" "moriarty"
"seinfeld" "newman"}]]
(for [(, h v) (.items nemesis)]
(print (.format "{0}'s nemesis was {1}" h v))))
(print (.format "{0}'s nemesis was {1}" h v))))

;; classes
; les classes sont définies comme ceci
(defclass Wizard [object]
[[--init-- (fn [self spell]
(setv self.spell spell) ; init the spell attr
None)]
[get-spell (fn [self]
self.spell)]])
(defn __init__ [self spell]
(setv self.spell spell))

;; allez voir hylang.org
(defn get-spell [self]
self.spell))
```

### Lectures complémentaires

Ce tutoriel est juste une simple introduction à hy/lisp/python.
Ce tutoriel est juste une simple introduction à Hy/Lisp/Python.

La documentation de HY: [http://hy.readthedocs.org](http://hy.readthedocs.org)
La documentation de Hy: [https://hylang.org/hy/doc](https://hylang.org/hy/doc)

Le repo GitHub de HY: [http://github.com/hylang/hy](http://github.com/hylang/hy)
Le repo GitHub de Hy: [https://github.com/hylang/hy](https://github.com/hylang/hy)

Sur freenode irc #hy, twitter hashtag #hylang
Loading

0 comments on commit cbb2eb4

Please sign in to comment.