[PYTHON] J'ai essayé de commencer avec Hy

Cet article ressemble à Lisp, mais pour le moment, Python Part 2 Advent Calendar 2015 est l'article du deuxième jour.

Qu'est-ce que Hy?

Hy est un interpréteur Lisp implémenté en Python.

Tous les chemins de programmation mènent à Lisp, alors commençons par Hy comme étape le long du chemin.

Installation

Facile à installer avec «pip».

pip install hy

J'ai essayé de le démarrer.

% hy
hy 0.11.0 using CPython(default) 2.7.6 on Linux
=> (print "Hello, World")
Hello, World

Appeler un module Python

La première chose à faire est de savoir comment appeler le module standard Python et la bibliothèque standard de Python, donc je vais l'essayer.

Obtenez l'objet datetime.datetime.

=> (import datetime)
=> (datetime.datetime.now)
datetime.datetime(2015, 12, 2, 3, 25, 37, 20456)

Correspondance d'expression régulière avec «re».

=> (re.findall r"([a-zA-Z]+)" "Spam Egg Ham")
[u'Spam', u'Egg', u'Ham']
=> (.groups (re.match r"([a-zA-Z]+)" "Spam Egg Ham"))
(u'Spam',)

Envoyez des requêtes HTTP avec des «requêtes». Vous devez «pip installer les demandes» à l'avance.

=> (import requests)
=> (requests.get "https://ticketcamp.net/")
<Response [200]>

Si vous êtes familier avec la syntaxe Lisp, vous pouvez l'utiliser normalement.

Définir une fonction

Utilisez defn.

=> (defn plus2 [x](+ 2 x))
=> (plus2 1)
3L

map, filter Souvent utilisé dans les livres d'introduction Lisp [ʻinc](http://docs.hylang.org/en/latest/language/core.html#inc), [ʻodd? ](Http: // Pour docs.hylang.org/en/latest/language/core.html#odd), [ʻeven? ](Http://docs.hylang.org/en/latest/language/core.html#even) C'était prédéfini. Utilisez-les pour essayer map, filter`.

Tout d'abord, «map».

=> (map inc [1 2 3])
<itertools.imap object at 0x7fb7b0193f50>
=> (list (map inc [1 2 3]))
[2L, 3L, 4L]

Puis filtre.

=> (filter odd? [1 2 3])
<itertools.ifilter object at 0x7fb7b13f59d0>
=> (list (filter odd? [1 2 3]))
[1L, 3L]

La macro - >> semble fonctionner, donc je vais essayer le processus dans Exemple de transducteurs de Clojure.

=> (def coll [1 2 3])
=> (->> coll (filter odd?) (map inc) (take 1))
<itertools.islice object at 0x7fb7b0199cb0>
=> (list (->> coll (filter odd?) (map inc) (take 1)))
[2L]

dict Un objet équivalent au dict de Python. (Comment l'appelez-vous en Lisp?)

=> (def data {:spam 1 :egg 2 :ham 3})
=> (:spam data)
1L

finalement

Après avoir essayé diverses choses, j'ai eu l'impression que je ne devais pas le toucher avec le même sentiment que Clojure, que je touche personnellement souvent récemment. Cependant, même si toute programmation mène à Lisp, il est difficile d'imaginer faire quelque chose avec.

La prochaine fois, j'aimerais examiner comment utiliser Hy.

Recommended Posts

J'ai essayé de commencer avec Hy
J'ai essayé de commencer avec Hy ・ Définir une classe
J'ai essayé de démarrer avec le script python de blender_Part 01
J'ai essayé de démarrer avec le script python de blender_Partie 02
[Python] Un mémo que j'ai essayé de démarrer avec asyncio
J'ai essayé d'obtenir des données CloudWatch avec Python
J'ai essayé de démarrer avec Bitcoin Systre le week-end
Lien pour commencer avec python
Comment démarrer avec Scrapy
Comment démarrer avec Python
Comment démarrer avec Django
J'ai essayé d'implémenter Autoencoder avec TensorFlow
J'ai essayé de visualiser AutoEncoder avec TensorFlow
J'ai essayé d'implémenter CVAE avec PyTorch
J'ai essayé de résoudre TSP avec QAOA
Un mémorandum lors de l'acquisition automatique avec du sélénium
J'ai écrit un script pour vous aider à démarrer avec AtCoder à grande vitesse!
J'ai commencé à analyser
J'ai essayé de déboguer.
Démarrez avec MicroPython
Démarrez avec Mezzanine
J'ai essayé de prédire l'année prochaine avec l'IA
J'ai essayé d'implémenter la lecture de Dataset avec PyTorch
J'ai essayé d'utiliser lightGBM, xg boost avec Boruta
Le moyen le plus simple de démarrer avec Django
J'ai essayé d'apprendre le fonctionnement logique avec TF Learn
J'ai essayé de déplacer GAN (mnist) avec keras
J'ai essayé d'obtenir une image en grattant
J'ai essayé de sauvegarder les données avec discorde
J'ai essayé de détecter rapidement un mouvement avec OpenCV
J'ai essayé d'intégrer Keras dans TFv1.1
J'ai essayé de sortir LLVM IR avec Python
J'ai essayé de détecter un objet avec M2Det!
J'ai essayé d'automatiser la fabrication des sushis avec python
J'ai essayé de prédire la survie du Titanic avec PyCaret
J'ai essayé d'utiliser Linux avec Discord Bot
J'ai essayé d'étudier DP avec séquence de Fibonacci
J'ai essayé de démarrer Jupyter avec toutes les lumières d'Amazon
J'ai essayé de juger Tundele avec Naive Bays
Zubu amateur veut démarrer Python
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
J'ai essayé d'entraîner la fonction péché avec chainer
J'ai essayé fp-growth avec python
J'ai essayé de gratter avec Python
J'ai essayé de déplacer l'apprentissage automatique (détection d'objet) avec TouchDesigner
Lancez-vous avec Django! ~ Tutoriel ⑤ ~
J'ai essayé d'extraire des fonctionnalités avec SIFT d'OpenCV
J'ai essayé de déplacer Faster R-CNN rapidement avec pytorch
J'ai essayé d'apprendre PredNet
J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2 2
J'ai essayé d'implémenter et d'apprendre DCGAN avec PyTorch
Commencez avec influxDB + Grafana
J'ai essayé Learning-to-Rank avec Elasticsearch!
J'ai essayé d'implémenter Mine Sweeper sur un terminal avec python
J'ai essayé de toucher un fichier CSV avec Python