[PYTHON] Ich habe versucht, mit Hy anzufangen

Dieser Artikel ist Lisp-ähnlich, aber vorerst ist Python Part 2 Adventskalender 2015 der Artikel des zweiten Tages.

Was ist Hy?

Hy ist ein in Python implementierter Lisp-Interpreter.

Alle Programmierpfade führen zu Lisp. Beginnen wir also mit Hy als Schritt auf dem Weg.

Installation

Einfach mit pip zu installieren.

pip install hy

Ich habe versucht, es zu starten.

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

Rufen Sie ein Python-Modul auf

Das erste, worüber Sie sich Sorgen machen müssen, ist, wie Sie das Python-Standardmodul und die Python-Standardbibliothek aufrufen, also werde ich es versuchen.

Holen Sie sich das Objekt datetime.datetime.

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

Regulärer Ausdruck stimmt mit "re" überein.

=> (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',)

Senden Sie HTTP-Anfragen mit Anfragen. Sie müssen "Pip-Installationsanforderungen" im Voraus ausführen.

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

Wenn Sie mit der Lisp-Syntax vertraut sind, können Sie sie normal verwenden.

Definieren Sie eine Funktion

Verwenden Sie "defn".

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

map, filter Wird häufig in Lisp-Einführungsbüchern inc, [odd?](Http: //) verwendet. Für docs.hylang.org/en/latest/language/core.html#odd) sogar? Es wurde vordefiniert. Verwenden Sie diese, um "Karte", "Filter" zu versuchen.

Zuallererst "Karte".

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

Dann filtern.

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

Das - >> Makro schien zu funktionieren, daher werde ich den Prozess in Clojures Transducers Example ausprobieren.

=> (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 Ein Objekt, das Pythons dict entspricht. (Wie nennt man das in Lisp?)

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

Schließlich

Nachdem ich verschiedene Dinge ausprobiert hatte, hatte ich den Eindruck, dass ich es nicht mit dem gleichen Gefühl wie Clojure berühren sollte, das ich persönlich in letzter Zeit oft berühre. Obwohl alle Programmierungen zu Lisp führen, ist es schwer vorstellbar, etwas damit zu machen.

Das nächste Mal möchte ich überlegen, wie man Hy benutzt.

Recommended Posts

Ich habe versucht, mit Hy anzufangen
Ich habe versucht, mit Hy ・ Define a class zu beginnen
Ich habe versucht, mit Blenders Python script_Part 01 zu beginnen
Ich habe versucht, mit Blenders Python script_Part 02 zu beginnen
[Python] Ein Memo, das ich versucht habe, mit Asyncio zu beginnen
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
Ich habe am Wochenende versucht, mit Bitcoin Systre zu beginnen
Link, um mit Python zu beginnen
Wie fange ich mit Scrapy an?
Erste Schritte mit Python
Wie fange ich mit Django an?
Ich habe versucht, Autoencoder mit TensorFlow zu implementieren
Ich habe versucht, AutoEncoder mit TensorFlow zu visualisieren
Ich habe versucht, CVAE mit PyTorch zu implementieren
Ich habe versucht, TSP mit QAOA zu lösen
Ein Memorandum beim automatischen Erwerb mit Selen
Ich habe ein Skript geschrieben, mit dem Sie mit hoher Geschwindigkeit mit AtCoder beginnen können!
Ich fing an zu analysieren
Ich habe versucht zu debuggen.
Beginnen Sie mit MicroPython
Beginnen Sie mit Mezzanine
Ich habe versucht, nächstes Jahr mit AI vorherzusagen
Ich habe versucht, das Lesen von Dataset mit PyTorch zu implementieren
Ich habe versucht, lightGBM, xg Boost mit Boruta zu verwenden
Der einfachste Weg, um mit Django zu beginnen
Ich habe versucht, mit TF Learn die logische Operation zu lernen
Ich habe versucht, GAN (mnist) mit Keras zu bewegen
Ich habe versucht, durch Schaben ein Bild zu bekommen
Ich habe versucht, die Daten mit Zwietracht zu speichern
Ich habe versucht, mit OpenCV Bewegungen schnell zu erkennen
Ich habe versucht, Keras in TFv1.1 zu integrieren
Ich habe versucht, LLVM IR mit Python auszugeben
Ich habe versucht, ein Objekt mit M2Det zu erkennen!
Ich habe versucht, die Herstellung von Sushi mit Python zu automatisieren
Ich habe versucht, das Überleben der Titanic mit PyCaret vorherzusagen
Ich habe versucht, Linux mit Discord Bot zu betreiben
Ich habe versucht, DP mit Fibonacci-Sequenz zu studieren
Ich habe versucht, Jupyter mit allen Amazon-Lichtern zu starten
Ich habe versucht, Tundele mit Naive Bays zu beurteilen
Zubu Amateur will Python starten
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Ich habe versucht, die Sündenfunktion mit Chainer zu trainieren
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
Ich habe versucht, maschinelles Lernen (Objekterkennung) mit TouchDesigner zu verschieben
Fangen Sie mit Django an! ~ Tutorial ⑤ ~
Ich habe versucht, Funktionen mit SIFT von OpenCV zu extrahieren
Ich habe versucht, Faster R-CNN mit Pytorch auszuführen
Ich habe versucht, PredNet zu lernen
Ich habe versucht, mit VOICEROID2 2 automatisch zu lesen und zu speichern
Ich habe versucht, DCGAN mit PyTorch zu implementieren und zu lernen
Beginnen Sie mit influxDB + Grafana
Ich habe versucht, mit Elasticsearch Ranking zu lernen!
Ich habe versucht, Mine Sweeper auf dem Terminal mit Python zu implementieren
Ich habe versucht, eine CSV-Datei mit Python zu berühren