เบเบตเปเปเบกเปเบเบเปเบฒเบชเบฑเปเบ hy เบเบตเปเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเปเปเบ OnWorks เบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบเปเบฎเบเบเบดเปเบเบเบฃเบตเปเบเบเปเบเปเบซเบเบถเปเบเปเบเบซเบผเบฒเบเปเบเปเบญเบเปเบฎเบฑเบเบงเบฝเบเบญเบญเบเปเบฅเบเปเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบฑเปเบ Ubuntu Online, Fedora Online, Windows online emulator เบซเบผเบท MAC OS online emulator
เปเบเบเบเบฒเบ:
NAME
hy - hy เปเบญเบเบฐเบชเบฒเบ [เบฎเบนเบ: Hy] [image]
เบเบฐเบเบฒเบเบฒเบก Hy https://try-hy.appspot.com
P&IP https://pypi.python.org/pypi/hy
เปเบซเบผเปเบเบเปเปเบกเบนเบ https://github.com/hylang/hy
เบเบฑเบโเบเบตโเบฅเบฒเบโเบเบทเป hylang-เบชเบปเบเบเบฐเบเบฒ
irc #เปเบญเบต เปเบ Freenode
เบชเปเบฒเบ เบชเบฐเบเบฒเบเบฐเบเบฒเบ
Travis CI.UNINDENT
Hy เปเบเบฑเบเบเบฒเบชเบฒเบเบตเปเบเบญเบเบขเปเบฝเบกเบเบญเบ Lisp เบเบตเปเบเบฑเบเบขเบนเปเปเบ Python.
เบเบฑเบเบเบฑเปเบเปเบเป Hy เบเปเบฝเบเบฅเบฐเบซเบฑเบ Lisp เปเบเบปเปเบฒเปเบเปเบ Python Abstract Syntax Tree, เบเปเบฒเบเบกเบต
เปเบฅเบเบเบตเปเบชเบงเบเบเบฒเบกเบเบฑเบเบซเบกเบปเบเบเบญเบ Python เบขเบนเปเบเบฒเบเบเบดเปเบงเบกเบทเบเบญเบเบเปเบฒเบ, เปเบเบฎเบนเบเปเบเบ Lisp!
เปเบเบทเปเบญเปเบ:
เบเปเบงเบ
[เบฎเบนเบเบเบฒเบ: เบเบญเบเบเบญเบ Karen Rustard] [เบฎเบนเบเบเบฒเบ]
(เบเปเบเบญเบเปเบ Karen Rustad เบชเปเบฒเบฅเบฑเบ Cuddles!)
เบงเบดเบเบตเบเบฒเบ เปเบเบดเบ GET HY REAL FAST:
1. เบชเปเบฒเบเบ virtual Python เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก.
2. เปเบเบตเบเปเบเปเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก Virtual Python เบเบญเบเบเปเบฒเบ.
3. เบเบดเบเบเบฑเปเบ hy เบเบฒเบ P&IP เบเบฑเบ pip เบเบฒเบเบเบดเบเบเบฑเปเบ hy.
4. เปเบฅเบตเปเบก REPL เบเบฑเบ hy.
5. เบเบดเบกเบชเบดเปเบเบเบตเปเบขเบนเปเปเบ REPL:
=> (เบเบดเบก "Hy!")
เปเบฎเบตเปเบ!
=> (defn salutationsnm [เบเบทเป] (เบเบดเบก (+ "Hy "เบเบทเป "!")))
=> (เบเปเบฒเบเบปเบกเปเบเบตเบ "เบเบทเปเบเบญเบเปเบเบปเปเบฒ")
เบเบทเปเบเบญเบเปเบเบปเปเบฒ!
เปเบฅเบฐเบญเบทเปเบเป
6. เบเบปเบ CTRL-D เปเบกเบทเปเบญเบเปเบฒเบเบเปเบฒเบฅเบฑเบเปเบฎเบฑเบ.
เปเบญโเบเบฐโเปเบเบปเปเบฒ! เบเบฑเปเบเปเบกเปเบ เบญเบฑเบเบชเบฐเบเบฑเบ! I เบเปเบญเบเบเบฒเบ to เบเบฝเบ a Hy เปเบเบเบเบฒเบ.
7. เปเบเบตเบโเบเบฑเบโเบเบฒโเบเบดโเบเบฒเบโเปเบเบโเบเบฒเบ elite เปเบฅเบฐโเบเบฐโเปเบเบโ:
(เบเบดเบก "เบเปเบญเบเบเบฐเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเปเบ syntax Python, เปเบเปเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบญเบเปเบเปเบฎเบฑเบ Hy.")
8. เบเบฑเบเบเบถเบเปเบเบฑเบ awesome.hy.
9. เปเบฅเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบเบเบฒเบ Hy เบเปเบฒเบญเบดเบเบเบญเบเบเปเบฒเบ:
hy awesome.hy
10โ.
เบซเบฒเบเปเบเปเบฅเบดเบเปเปเบเบทเปเบญเบเปเปเปเบซเปเปเบเบตเบเบเบฒเบเบฅเบฐเบเบฒเบเบญเบฒเบเบฒเบเบชเบนเบ.
11โ.
เบเบดเปเบกเบขเปเบฒเบเปเบซเบเบฎเปเบฒเบ เปเบฅเบฐ เบเปเบฒเบเบญเบญเบเปเบเบเบตเป hydeaway เบเบญเบเปเบเบปเปเบฒ เปเบฅเบฐเปเบฎเบฑเบเบชเบดเปเบเบเบตเปเปเบงเบปเปเบฒเบเปเปเปเบเป.
TUTORIAL
เบเบดเบเบเบตเบเปเบญเบเบฎเบฑเบเบชเบนเปเบเบฒเบเบชเบญเบ Hy!
เปเบเบเบซเบเปเป, Hy เปเบกเปเบเบเบฒเบชเบฒ Lisp, เปเบเปเปเบเบฑเบเบเบฒเบชเบฒเบเบตเปเบเปเบฝเบเปเบเบเบชเปเบฒเบเบเบญเบเบกเบฑเบเปเบซเปเปเบเบฑเบ Python ...
เบเบฒเบเบเปเบฝเบเปเบเบฑเบเบเบปเปเบเปเบกเป syntax เบเบตเปเบเปเปเบกเบตเบเบปเบงเบเบปเบเบเบญเบ Python เปเบเปเป! (เบซเบผเบทโเบเบฐโเปเบฎเบฑเบโเปเบซเปโเบกเบฑเบโเบกเบตโเบเบงเบฒเบกโเปเบเบฑเปเบกโเปเบเบโเบซเบผเบฒเบโ
เปเบเบทเปเบญเบเปเบ, Hy เปเบกเปเบ lisp-stick เปเบ Python!)
เบเบตเปเปเบกเปเบเบเบตเบซเบผเบฒเบเปเบเบฒเบฐเบงเปเบฒเบกเบฑเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒ Hy เบกเบตเบซเบผเบฒเบเบชเบดเปเบเบซเบผเบฒเบเบขเปเบฒเบ:
ยท Lisp เบเบตเปเบกเบตเบเบงเบฒเบกเบฎเบนเปเบชเบถเบ Pytonic เบซเบผเบฒเบ
ยทเบชเปเบฒเบฅเบฑเบ Lispers, เปเบเบฑเบเบงเบดเบเบตเบเบตเปเบเบตเบเบตเปเบเบฐเปเบเปเบญเปเบฒเบเบฒเบเบเปเบฒเบเบญเบ Lisp เปเบเปเปเบเปเบฅเบเบเบงเปเบฒเบเบเบญเบ Python's
เบซเปเบญเบเบชเบฐเบซเบกเบธเบ (เปเบเบฑเบเบซเบเบฑเบเปเบกเปเบเปเบฅเปเบง, เบเบญเบเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฝเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ Django เปเบ Lisp!)
ยท เบชเปเบฒเบฅเบฑเบ Pythonistas, เปเบเบฑเบเบงเบดเบเบตเบเบตเปเบเบตเบเบตเปเบเบฐเปเบฅเบตเปเบกเบเบปเปเบเบซเบฒ Lisp, เบเบฒเบเบเบงเบฒเบกเบชเบฐเบเบงเบเบชเบฐเบเบฒเบเบเบญเบ Python!
ยทโเบชเปเบฒโเบฅเบฑเบโเบเบธเบโเบเบปเบโ: เปเบเบฑเบโเบเบฒโเบชเบฒโเบเบตเปโเบซเบเปเบฒโเบชเบปเบโเปเบโเบเบตเปโเบกเบตโเบซเบผเบฒเบโเบเบญเบโเบเบงเบฒเบกโเบเบดเบ neatโ!
เบเบทเปเบเบเบฒเบ intro to lisp เบชเปเบฒเบฅเบฑเบเบเบฒเบ Pythonistas
เบเบปเบเบฅเบปเบ, เบเบฒเบเบเบตเปเบเบปเปเบฒเบเปเปเปเบเบตเบเปเบเป Lisp เบกเบฒเบเปเบญเบ, เปเบเปเปเบเบปเปเบฒเปเบเบตเบเปเบเป Python!
เปเบเบเบเบฒเบ "เบชเบฐเบเบฒเบเบเบตเปเบฅเบ" เปเบ Hy เปเบกเปเบเบเปเบฒเบเบเบฒเบเบเบตเปเบชเบธเบ. เปเบซเปเบฅเบญเบเบกเบฑเบ:
(เบเบดเบก "เบชเบฐเบเบฒเบเบเบตเปเบฅเบ")
เปเบซเบฑเบเบเป? เบเปเบฒเบ! เบเบฑเปเบเบเบตเปเบเปเบฒเบเบญเบฒเบเบเบฐเปเบเปเบเบฒเบเปเบเบปเบฒ, เบเบตเปเปเบกเปเบเบเบทเบเบฑเบเบเบฑเบเบชเบฐเบเบฑเบ Python เบเบญเบ:
เบเบดเบก "เบชเบฐเบเบฒเบเบเบตเปเบฅเบ"
เปเบเบทเปเบญเปเบเบตเปเบกเบเบฐเบเบดเบเบชเบฒเบเบเบตเปเบเปเบฒเบเบเบฒเบเบซเบผเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเป:
(+ 1 3)
เปเบเบดเปเบเบเบฐเบเบฑเบเบเบทเบเบกเบฒ 4 เปเบฅเบฐเบเบฐเปเบเบปเปเบฒเบเบฑเบ:
1 + 3
เบชเบดเปเบโเบเบตเปโเบเปเบฒเบโเบเบฐโเบชเบฑเบโเปเบเบโเปเบซเบฑเบโเปเบกเปเบโเบงเปเบฒโเบฅเบฒเบโเบเบฒเบโเบเปเบฒโเบญเบดเบโเปเบโเบเบฑเบโเบเบตโเบฅเบฒเบโเบเบฒเบโเปเบกเปเบโเบเบฒเบโเบเปเบฒโเบเบฒเบโเบเบตเปโเบเบทเบโเปเบญเบตเปเบโเปเบฅเบฐโ
เบชเปเบงเบเบเบตเปเปเบซเบผเบทเบญเบเบญเบเบเบฒเบเปเบเปเบเบฝเบเปเบกเปเบเบเบฒเบเปเบเปเบเบฝเบเบเบตเปเบเบทเบเบชเบปเปเบเบเปเบฒเบ. เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เปเบ Hy (เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบชเปเบงเบเปเบซเบเป
Lisps) เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบชเบปเปเบเบเปเบฒเบเบซเบผเบฒเบ argument เปเบเบซเบฒเบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบงเบ:
(+ 1 3 55)
เบเบถเปเบเบเบฐเบเบฑเบเบเบทเบเบกเบฒ 59.
เบเบฒเบเบเบตเปเบเบปเปเบฒเปเบเบตเบเปเบเปเบเบดเบเบเบญเบ Lisp เบกเบฒเบเปเบญเบเปเบเปเบเปเปเบฎเบนเปเบซเบผเบฒเบเบเปเบฝเบงเบเบฑเบเบกเบฑเบ. Lisp เบเปเปเบเบฒเบเบเบทเบเบฑเบเปเบเบปเปเบฒ
เบญเบฒเบเบเบฐเบเบดเบ, เปเบฅเบฐ Hy เบชเบทเบเบเบญเบเบกเบฒเบเบฒเบ Python, เบเบฑเปเบเบเบฑเปเบ Hy เปเบเบฑเบเบงเบดเบเบตเบเบตเปเบเบตเบเบตเปเบเบฐเปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบเบฎเบฝเบเบฎเบนเป Lisp.
เบชเบดเปเบเบเบตเปเบชเปเบฒเบเบฑเบเบเบตเปเบเบฐเปเบเปเบเบเปเบฝเบงเบเบฑเบ Lisp เปเบกเปเบเบงเปเบฒเบกเบตเบงเบปเบเปเบฅเบฑเบเบซเบผเบฒเบ. เบเบตเปเบญเบฒเบเบเบฐ
เบเปเบฒเบญเบดเบเปเบเบดเปเบเบเบทเบงเปเบฒเบชเบฑเบเบชเบปเบ, เปเบเปเบกเบฑเบเบเปเปเบเบฒเบเบซเบผเบฒเบ. เปเบซเปโเปเบฎเบปเบฒโเปเบเบดเปเบโเบเบฐโเบเบดเบโเบชเบฒเบโเบเบตเปโเบเปเบฒเบโเบเบฒเบโเบเบฒเบโเบขเปเบฒเบโเบเบตเปโ
เบซเปเปเบขเบนเปเปเบเบงเบปเบเปเบฅเบฑเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเปเบเบเบฒเบเบเบฒเบชเบฒ Hy:
(setv เบเบปเบเปเบเปเบฎเบฑเบ (- (/ (+ 1 3 88) 2) 8))
เบเบตเปเบเบฐเบเบฑเบเบเบทเบเบกเบฒ 38. เปเบเปเปเบเบฑเบเบซเบเบฑเบ? เบเบต, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเบดเปเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบฝเบเปเบเบปเปเบฒเปเบ
python:
เบเบปเบเปเบเปเบฎเบฑเบ = ((1 + 3 + 88) / 2) โ 8
เบเปเบฒเบเปเบฒเบเบเบฐเบเบฒเบเบฒเบกเบเบญเบเบซเบฒเบงเบดเบเบตเบเปเบฒเบเปเบเบดเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบ python, เปเบเปเบเบญเบ, เปเบเปเบเบญเบ
เบเบดเบเบญเบญเบเบเบปเบเปเบเปเบฎเบฑเบเปเบเบเบเบฒเบเปเบเปเปเบเปเบเปเบฅเบฐเบงเบปเบเปเบฅเบฑเบเบเบฒเบเปเบ. เบเบฑเปเบเปเบกเปเบเบเบงเบฒเบกเบเบดเบเบเบทเปเบเบเบฒเบเบเบฝเบงเบเบฑเบเปเบ
เบฎเบด. เบฅเบญเบเปเบฎเบฑเบเบเบปเบเบเบถเบเบซเบฑเบเบเบตเปเบเปเบญเบเปเบ Python:
เบเบปเบเปเบเปเบฎเบฑเบ = ((1 + 3 + 88) / 2) โ 8
# เบซเบเปเปเปเบเบฑเบ...
เบเบปเบเปเบเปเบฎเบฑเบ = (92/2) โ 8
# เบซเบเปเปเปเบเบฑเบ...
เบเบปเบเปเบเปเบฎเบฑเบ = 46 โ 8
# เบซเบเปเปเปเบเบฑเบ...
เบเบปเบเปเบเปเบฎเบฑเบ = 38
เบเบญเบเบเบตเปเปเบซเปเบฅเบญเบเปเบฎเบฑเบเบชเบดเปเบเบเบฝเบงเบเบฑเบเปเบ Hy:
(setv เบเบปเบเปเบเปเบฎเบฑเบ (- (/ (+ 1 3 88) 2) 8))
; เบซเบเปเปเปเบเบฑเบ...
(setv เบเบปเบเปเบเปเบฎเบฑเบ (- (/ 92 2) 8))
; เบซเบเปเปเปเบเบฑเบ...
(เบเบปเบ setv (- 46 8))
; เบซเบเปเปเปเบเบฑเบ...
(เบเบปเบ setv 38)
เบเบฑเปเบเบเบตเปเบเปเบฒเบเบญเบฒเบเบเบฐเบเบฒเบเปเบเบปเบฒ, เบเบตเปเบชเบฐเปเบเบเบญเบญเบเบชเบธเบเบเปเบฒเบเบเบฑเบ เบเบธเบ เปเบฒเบเปเบเบดเบเบเบฒเบเบเบณเบเบปเบเบเบปเบงเปเบ
"เบเบปเบเปเบเปเบฎเบฑเบ" เปเบเบดเบ 38.
เปเบซเบฑเบเบเป? เบเปเปเบเบฒเบเปเบเบตเบเปเบ!
เบเบตเปเปเบกเปเบเบเบทเปเบเบเบฒเบเบเบญเบ Lisp. Lisp เบซเบเปเปเบกเบฒเบเบฒเบ "เบเบฒเบเบเบธเบเปเบเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเป"; เบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒ
เปเบเบเบเบฐเบเบญเบเบเบฒเบเบเบญเบเปเบเบเบเบฒเบเปเบกเปเบเบเบปเบงเบเบดเบเปเบฅเปเบงเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเป. (เบเปเบฒเบเปเบฒเบเบเบธเปเบเปเบเบตเบเบเบฑเบ Python
เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป, เบเบดเบเบเบฐเบเบฒเบเบฒเบเปเบเบเบชเปเบฒเบเบเบฝเบงเบเบฑเบเบเบฑเบเบซเบกเบปเบเบเปเบฒเบเปเบเบดเบเปเบเปเบกเบตเบงเบปเบเปเบฅเบฑเบเบชเบตเปเบซเบฅเปเบฝเบกเปเบเบ, เปเบ
เบเปเบฒเบโเบเบฐโเบชเบฒโเบกเบฒเบโเปเบเบดเปเบโเปเบเบโเบชเปเบฒเบโเบเปเบฒเบโเปเบเบดเบโเบเบตเปโเปเบเบฑเบโเบเบฑเบโเปเบเบโเบเบฒเบโเปเบฅเบฐโเปเบเบโเบชเปเบฒเบโเบเปเปโเบกเบนเบโ.) เบเบตเปโเปเบกเปเบโ
เปเบเบปเปเบฒโเปเบโเบเปเบฒเบโเบเบถเปเบโเปเบเบโเบกเบตโเบเบปเบงโเบขเปเบฒเบโเบซเบผเบฒเบโ, เบชเบฐโเบเบฑเปเบโเปเบซเปโเปเบฎเบปเบฒโเบเบฝเบโเปเบเบโเบเบฒเบ Python เบเปเบฒเบโเบเบฒเบโ, เบเบปเบโเบชเบญเบโเบกเบฑเบโ,
เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเปเบเบเบเบฒเบ Hy เบเบฝเบเปเบเบปเปเบฒ:
def simple_conversation():
เบเบดเบก "เบชเบฐเบเบฒเบเบเบต! เบเปเบญเบเบขเบฒเบเบฎเบนเปเบเบฑเบเปเบเบปเปเบฒ. เบเบญเบเบเปเบญเบเบเปเบฝเบงเบเบฑเบเบเบปเบงเปเบญเบ!"
name = raw_input("เปเบเบปเปเบฒเบเบทเปเบซเบเบฑเบ?")
age = raw_input("เบญเบฒเบเบธเบเบญเบเปเบเบปเปเบฒเปเบกเปเบเบซเบเบฑเบ?")
เบเบดเบก "เบชเบฐเบเบฒเบเบเบต" +เบเบทเป + "! เบเปเบญเบเปเบซเบฑเบเปเบเบปเปเบฒ " + เบญเบฒเบเบธ + "เบเบต."
simple_conversation()
เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบเบเบฒเบเบเบตเป, เบกเบฑเบเบญเบฒเบเบเบฐเปเบเบฑเบเบเบท:
เบชเบฐเบเบฒเบเบเบต! เบเปเบญเบเบขเบฒเบเบฎเบนเปเบเบฑเบเปเบเบปเปเบฒ. เบเบญเบเบเปเบญเบเบเปเบฝเบงเบเบฑเบเบเบปเบงเบเปเบฒเบเปเบญเบ!
เปเบเบปเปเบฒโเบเบทเปโเบซเบเบฑเบ? เปเบเบฃเบต
เบญเบฒเบเบธเบเบญเบเปเบเบปเปเบฒเปเบกเปเบเบซเบเบฑเบ? 38
เบชเบฐเบเบฒเบเบเบต Gary! เบเปเบญเบเปเบซเบฑเบเปเบเบปเปเบฒเบญเบฒเบเบธ 38 เบเบต.
เบเบญเบเบเบตเปเปเบซเปเปเบเบดเปเบเปเบเบเบเบฒเบ Hy เบเบฝเบเปเบเบปเปเบฒ:
(defn เบเบฒเบเบชเบปเบเบเบฐเบเบฒเปเบเบเบเปเบฒเบเบเบฒเบ []
(เบเบดเบก "เบชเบฐเบเบฒเบเบเบต! เบเปเบญเบเบขเบฒเบเบฎเบนเปเบเบฑเบเปเบเบปเปเบฒ. เบเบญเบเบเปเบญเบเบเปเบฝเบงเบเบฑเบเบเบปเบงเปเบญเบ!")
(เบเบทเป setv (เบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบเบเบดเบ "เบเบทเปเบเบญเบเปเบเบปเปเบฒเปเบกเปเบเบซเบเบฑเบ?"))
(setv age (เบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบเบเบดเบ "เบญเบฒเบเบธเบเบญเบเปเบเบปเปเบฒเปเบกเปเบเบซเบเบฑเบ?"))
(เบเบดเบก (+ "เบชเบฐเบเบฒเบเบเบต" เบเบทเป "! เบเปเบญเบเปเบซเบฑเบเปเบเบปเปเบฒเปเบเบฑเบ"
เบญเบฒเบเบธ "เบเบต.")))
(เบเบฒเบโเบชเบปเบโเบเบฐโเบเบฒโเบเปเบฒเบโเบเบฒเบโ)
เบเปเบฒเบเปเบฒเบเปเบเบดเปเบเปเบเบเบเบฒเบเบเปเบฒเบเปเบเบดเบ, เบเบฒเบเปเบเบเบตเปเบเปเบฒเบเบเบทเปเบเปเบฒเบงเปเบฒเบญเบปเบเบเบฐเบเบญเบเบเปเบฒเบญเบดเบเปเบเปเบเปเบฅเบฐ
เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเปเบเบเบเบฒเบเปเบกเปเบเบซเบเปเบฒเบเบตเป (เบซเบผเบทเบกเบฐเบซเบฒเบเบฒเบ ... เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบซเบฒเบเบนเปเบเบตเปเบเปเปเบกเบฒ) เบเบทเบเปเบญเบตเปเบ
เปเบฅเบฐเบชเปเบงเบเบเบตเปเปเบซเบผเบทเบญเปเบกเปเบเบเบฒเบเปเบเปเบเบฝเบ, เบกเบฑเบเบเปเบฒเบเบเบตเปเบเบฐเบเบดเบเบญเบญเบเบงเปเบฒเบเบฑเบเบซเบกเบปเบเบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเปเบเบงเปเบ.
(เบเบฑเปเบเบเบตเปเปเบเบปเปเบฒเบญเบฒเบเบเบฐเบเบฒเบเปเบเบปเบฒเบเบทเบเบฑเบ, defn เปเบกเปเบโเบงเบดโเบเบตโเบเบฒเบ Hy เบเบญเบโเบเบฒเบโเบเปเบฒโเบเบปเบโเบงเบดโเบเบตโเบเบฒเบโ.)
เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบซเบผเบฒเบเปเบเบปเบเบเบปเบเบงเปเบฒเบกเบฑเบเบชเบฑเบเบชเบปเบเปเบเบเบญเบเบเปเบฒเบญเบดเบเปเบเบฒเบฐเบงเปเบฒเบกเบตเบงเบปเบเปเบฅเบฑเบเบซเบผเบฒเบ,
เปเบเปเบกเบตเบซเบผเบฒเบเบขเปเบฒเบเบเบตเปเบชเบฒเบกเบฒเบเบเปเบงเบเปเบฎเบฑเบเปเบซเปเบกเบฑเบเบเปเบฒเบเบเบถเปเบ: เบฎเบฑเบเบชเบฒเบเบฒเบเบซเบเปเปเปเปเบฒเปเบซเปเบเบฒเบก เปเบฅเบฐ
เปเบเปเบเบปเบงเปเบเปเปเบเบเบตเปเบกเบตเบเบฒเบเบเบฑเบเบเบนเปเบงเบปเบเปเบฅเบฑเบ (เบเบตเปเบเบฐเบเปเบงเบเปเบซเปเบเปเบฒเบเบเบญเบเบซเบฒเบชเบดเปเบเบเบตเปเปเบเปเบฅเบฐเบเบปเบ
เบงเบปเบเปเบฅเบฑเบเบเบนเปเบเบฑเบ) เปเบฅเบฐเบชเบดเปเบเบเปเบฒเบเปเบเบฐเปเบฅเบตเปเบกเบกเบตเบเบงเบฒเบกเบฎเบนเปเบชเบถเบเบชเบฐเบเบงเบเบชเบฐเบเบฒเบ.
เบกเบตเบเบฒเบเบเปเปเปเบเปเบเบฝเบเบเบตเปเบเบฐเบกเบตเปเบเบเบชเปเบฒเบเบฅเบฐเบซเบฑเบเบเบตเปเบเบปเบงเบเบดเบเปเบฅเปเบงเปเบเบฑเบเบเปเปเบกเบนเบเบเปเบฒเบเบเบฒเบเบซเบผเบฒเบ
เปเบเบเบชเปเบฒเบเบซเบผเบฑเบเบเบญเบ Lisp เปเบกเปเบเบญเบตเบเปเบชเป. เบชเปเบฒเบฅเบฑเบเบชเบดเปเบเบซเบเบถเปเบ, เบกเบฑเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเปเบเบเบเบฒเบเบเบญเบเบเปเบฒเบเปเบกเปเบ
เบเปเบฒเบโเบเบตเปโเบเบฐ parse เปเบฅเบฐโเบงเปเบฒโเปเบเบโเบเบฐโเบเบญเบโเบเบฒเบโเบเบปเบงโเบเบดเบโเบเบฑเบโเบซเบกเบปเบโเบเบญเบโเปเบเบโเบเบฒเบโเปเบกเปเบโเปเบเปโเบฎเบฑเบโเบเบฒเบโเปเบเบตเบโเปเบเบตเบโเบซเบผเบฒเบโเบขเปเบฒเบโเบเบฐโเปเบเปเบโ
เปเบซเปโเปเบเบปเปเบฒ. (เบกเบตเบเบฑเปเบเบเบญเบเปเบเบตเปเบกเปเบเบตเบกเปเบ hy เบเปเบญเบเบเบตเปเปเบเบเบชเปเบฒเบเบเบตเปเบเปเบฒเบเปเบซเบฑเบเบเบทเบเบเปเบฝเบเปเบเบฑเบ Python's
เบเบฒเบเปเบเบฑเบเบเบปเบงเปเบเบเบเบญเบเบเบปเบเปเบญเบ ... เปเบ "เบเปเบฅเบดเบชเบธเบ" Lisps เปเบเบฑเปเบ Common Lisp เบซเบผเบท Emacs Lisp, เบเปเปเบกเบนเบ
เปเบเบเบชเปเบฒเบเบเบตเปเบเปเบฒเบเปเบซเบฑเบเบขเบนเปเปเบเบฅเบฐเบซเบฑเบเปเบฅเบฐเปเบเบเบชเปเบฒเบเบเปเปเบกเบนเบเบเบตเปเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบกเปเบเบกเบตเบซเบผเบฒเบ
เปเบเปเบเบปเบง.)
เบเบงเบฒเบกเบซเบกเบฒเบเบญเบทเปเบเบเบญเบเบเบตเปเปเบกเปเบ macros: เบเปเบฒเปเบเบเบชเปเบฒเบเบเบญเบเปเบเบฅเปเบเบฅเบกเปเบเบฑเบเบเปเปเบกเบนเบเบเปเบฒเบเป
เปเบเบเบชเปเบฒเบ, เบเบฑเปเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฝเบเบฅเบฐเบซเบฑเบเบเบตเปเบชเบฒเบกเบฒเบเบเบฝเบเบฅเบฐเบซเบฑเบเปเบเปเบเปเบฒเบ, เบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒ
เบเบฒเบเบเบฐเบเบดเบเบฑเบเบฅเบฑเบเบชเบฐเบเบฐเบเบฒเบชเบฒเปเบซเบกเปเบเบฑเบเบซเบกเบปเบเบชเบฒเบกเบฒเบเปเบงเบซเบผเบฒเบ. เบเปเบญเบเปเปเบฒเบเบตเป Hy, เบเบตเปเบเปเปเปเบกเปเบ
เปเบเบฑเบเปเบเปเบเปเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฑเบเบเบฝเบเปเบเบฅเปเบเบฅเบก Python ... เบเบฝเบงเบเบตเปเปเบเบปเปเบฒเบเบฑเบเบชเบฒเบกเบฒเบเปเบเป macros เปเบเปเบขเปเบฒเบเบเปเปเปเปเบฒเปเบเบทเปเบญ
เบเบฐโเบฅเบฑเบโเบเบฒเบ (เบเบฝเบโเปเบเปโเบฅเบฐโเบกเบฑเบโเบฅเบฐโเบงเบฑเบโเปเบเบทเปเบญโเบเปเปโเปเบซเปโเปเบเบปเบฒโเปเบเบปเปเบฒโเปเบโเปเบชเปโเบเบตเบโ)โ!
Hy is a เบกเบตเบฅเบปเบเบเบฒเบ lisp Python
Hy เบเปเบฝเบเปเบเบฑเบเบเบปเปเบเปเบกเป syntax เบเบตเปเบเปเปเบกเบตเบเบปเบงเบเบปเบเบเบญเบ Python, เบชเบฐเบเบฑเปเบเปเบเปเบงเปเบเบตเปเบเปเบฒเบเบเบฐเปเบฅเบตเปเบกเบเบญเบเบซเบฒเบชเบดเปเบเบเบฑเปเบ
เบเบฐเบฅเบฑเบเบเบฒเบเบเบตเปเบเบธเปเบเปเบเบตเบเบเบญเบ python เปเบกเปเบเบขเบนเปเปเบเบเบฒเบเบเบดเปเบงเบกเบทเบเบญเบเบเปเบฒเบ.
เบเปเบฒเบเบกเบตเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฐเปเบเบเบเปเปเบกเบนเบเบเบญเบ Python เปเบฅเบฐเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบกเบฒเบเบเบฐเบเบฒเบเปเบ Hy. เปเบซเปเบเบปเบเบฅเบญเบ
เบเบฑเบเปเบฅเบทเปเบญเบเบเบตเปเบขเบนเปเปเบเบเบฒเบเบเบฒเบชเบฒเบเบญเบเบฅเบฒเบง:
=> [1 2 3]
[1, 2, 3]
=> {"เบซเบกเบฒ" "เปเบเบทเบญเบ"
... "เปเบกเบง" "เปเบกเบง"}
...
{'dog': 'เปเบเบทเบญเบ', 'เปเบกเบง': 'meow'}
=> ( , 1 2 3 )
(1, 2, 3)
เบเปเบฒเบเปเบฒเบเบเบธเปเบเปเบเบตเบเบเบฑเบ Lisps เบญเบทเปเบเป, เบเปเบฒเบเบญเบฒเบเบเบฐเบชเบปเบเปเบเบงเปเบฒ Hy เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ Common
Lisp เบงเบดเบเบตเบเบฒเบเบญเปเบฒเบเบญเบตเบ:
=> '(1 2 3)
(1L 2L 3L)
เบเปเบฒเบโเบเบฑเบโเบกเบตโเบเบฒเบโเปเบเบปเปเบฒโเปเบเบดเบโเบเบธเบโเบเบฐโเปเบเบโเบเบตเปโเบกเบตโเบขเบนเปโ' เบงเบดโเบเบตโเบเบฒเบโเบเบตเปโเบเบตโ:
=> (.strip "fooooo")
"เบเบนเป"
เบเบตเปโเปเบกเปเบโเบซเบเบฑเบ? เปเบเปเบเบดเบเปเบฅเปเบง, เบเบตเปเปเบกเปเบเบเบทเบเบฑเบเบเบฑเบ:
"fooooo ".strip()
เบเบทเบเบเปเบญเบ---Lisp เบเบฑเบ notation dot! เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเบงเบโเปเบฎเบปเบฒโเบกเบตโเบชเบฐโเบโเบฃเบดโเบโเบเบตเปโเบเปเบฒโเบเบปเบโเปเบเบฑเบโเบเบปเบงโเบเปเบฝเบโเปเบเบโ, เบเบงเบโเปเบฎเบปเบฒโ
เบเบฑเบโเบชเบฒโเบกเบฒเบโเปเบฎเบฑเบโเปเบเปโเบเบฑเปเบโเบเปเปโเปเบโเบเบตเปโ:
(setv this-string "fooooo")
(this-string.strip)
เบเบฐเปเบเบฑเบเปเบเบงเปเบเบเปเบฝเบงเบเบฑเบเปเบเบทเปเบญเบเปเบ?:
(เบเปเบฒ (เบเบฐเบเบฒเบเบฒเบกเบเบฒเบเบญเบฑเบ)
(เบเบดเบก "เบเบตเปเปเบกเปเบเบเปเบฒเปเบเบฑเบเบเบดเบ")
(เบเบดเบก "เบเบตเปเปเบกเปเบเบเปเบฒเบเปเปเบเบทเบเบเปเบญเบ"))
เบเบฑเปเบเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบญเบเบเปเบฒเบเปเบเบดเบ, เบเบฒเบเปเบเปเบเบฝเบเบเปเบฒเบญเบดเบเบเบตเปเบเบฐ if เปเบกเปเบเบเบฒเบเบเบปเบเบชเบญเบเบเบงเบฒเบกเบเบดเบ, เบเบฒเบเปเบเปเบเบฝเบเบเบตเบชเบญเบเปเบกเปเบ
เบฎเปเบฒเบเบเบฒเบเบเปเบฒเปเบเบฑเบเบเบงเบฒเบกเบเบดเบ, เปเบฅเบฐเบเบฒเบเปเบเปเบเบฝเบเบเบตเบชเบฒเบก (เบเบฒเบเปเบฅเบทเบญเบ!) เปเบกเปเบเบเปเบฒเบเปเปเบเบทเบเบเปเบญเบ (ie. เบญเบทเปเบ).
เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเปเบฎเบฑเบเปเบเบทเปเบญเบเปเบเบเบตเปเบชเบฑเบเบชเบปเบเบซเบผเบฒเบ, เบเปเบฒเบเบเบฐเบเบปเบเบงเปเบฒเบเปเบฒเบเบเปเปเบกเบต เปเบญเบฅเบตเบ
เบกเบตเบขเบนเปเปเบ Hy. เปเบเบเบเบตเปเบเบฐ, เบเปเบฒเบเบเบงเบเปเบเปเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒ เบเบปเปเบ. เปเบ Python, เปเบเบปเปเบฒเบญเบฒเบเบเบฐเปเบฎเบฑเบ
เบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบ:
somevar = 33
เบเปเบฒ somevar > 50:
เบเบดเบก "เบเบปเบงเปเบเบเบฑเปเบเปเบซเบเปเปเบเบตเบเปเบ!"
elif somevar < 10:
เบเบดเบก "เบเบปเบงเปเบเบเบฑเปเบเบเปเบญเบเปเบเบตเบเปเบ!"
เบญเบทเปเบ:
เบเบดเบก "เบเบปเบงเปเบเบเบฑเปเบเปเบกเปเบเบเบทเบเบเปเบญเบ!"
เปเบ Hy, เปเบเบปเปเบฒเบเบฐเปเบฎเบฑเบ:
(เบเปเป
[(> somevar 50)
(เบเบดเบก "เบเบปเบงเปเบเบเบฑเปเบเปเบซเบเปเปเบเบตเบเปเบ!")]
[(< somevar 10)
(เบเบดเบก "เบเบปเบงเปเบเบเบฑเปเบเบเปเบญเบเปเบเบตเบเปเบ!")]
[เบเบดเบ
(เบเบดเบก "เบเบปเบงเปเบเบเบฑเปเบเปเบกเปเบเบเบทเบเบเปเบญเบ!")])
เบชเบดเปเบเบเบตเปเบเปเบฒเบเบเบฐเบชเบฑเบเปเบเบเปเบซเบฑเบเปเบกเปเบเบงเปเบฒ เบเบปเปเบ เบเบดเบเบฅเบฐเบซเบงเปเบฒเบเบเปเบฒเบเบฐเปเบซเบผเบเบเบตเปเบเปเบฒเปเบเบตเบเบเบฒเบเปเบฅเบฐ
เบเบงเบเบชเบญเบเปเบเบทเปเบญเบเปเบเบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเบเบดเบเบซเบผเบทเบเบดเบ, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบฅเบฑเบเบเปเบญเบเบเบญเบเบฅเบฐเบซเบฑเบเบเบตเปเบเบฐเบเบฐเบเบดเบเบฑเบเบเปเบฒเบซเบฒเบเบงเปเบฒเบกเบฑเบ turns
เบญเบญเบโเปเบโเปเบเบฑเบโเบเบงเบฒเบกโเบเบดเบ. เบเปเบฒเบเบเบฑเบเบเบฐเบชเบฑเบเปเบเบเปเบซเบฑเบเบงเปเบฒ เบญเบทเปเบ เบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเบเบญเบเบเปเบฒเบเบเบญเบเบเบฝเบเปเบเปเปเบเบ
เบเบฒเบเบเบงเบเบชเบญเบ เบเบตเปเปเบเปเบเบดเบ -- เบเบฑเปเบโเปเบกเปเบโเบเปเบญเบโเบงเปเบฒ เบเบตเปเปเบเปเบเบดเบ เบเบฐโเปเบเบฑเบโเบเบงเบฒเบกโเบเบดเบโเบชเบฐโเปเบซเบกเบตโเปเบโ, เบชเบฐโเบเบฑเปเบโเบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเบงเบโเปเบฎเบปเบฒโเปเบเปโเปเบโเปเบโเบเบตเปโ, เบเบงเบโเปเบฎเบปเบฒโเบเบฐโ
เปเบฅเปเบเบญเบฑเบเบเบฑเปเบเบชเบฐเปเปเบต!
เปเบเบปเปเบฒเบญเบฒเบเบเบฐเบชเบฑเบเปเบเบเปเบซเบฑเบเบเปเบฒเบเปเบเบดเบเบงเปเบฒเบเปเบฒเบเปเบฒเบเบกเบตเบฅเบฐเบซเบฑเบเปเบเบฑเปเบ:
(เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเบฒเบโเปเบเบทเปเบญเบโเปเบโ
(เบฎเปเบฒเบเบเบฒเบ-เบเปเบฒ-เบเบดเบ)
(เบฎเปเบฒเบเบเบฒเบ-เบเปเบฒ-เบเบดเบ))
เปเบเปเบฅเปเบเปเบฒ! เบเบฐเปเบเบฑเบเปเบเบงเปเบเบเปเบฒเบซเบฒเบเบงเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบเบฐเบเบดเบเบฑเบเบซเบผเบฒเบเบเปเบงเบฒเบซเบเบถเปเบเบเปเบฒเบเบฐเปเบซเบผเบเบเบตเปเบขเบนเปเปเบเบฎเปเบฒเบเบเบฒเบเบเบญเบเบซเบเบถเปเบเบเบญเบ
เปเบซเบผเบปเปเบฒเบเบตเป?
เบเปเบฒเบโเบชเบฒโเบกเบฒเบโเปเบฎเบฑเบโเปเบเปโเบเบฑเปเบโเบเปเปโเปเบโเบเบตเปโ:
(เบเปเบฒ (เบเบฐเบเบฒเบเบฒเบกเบเบฒเบเบญเบฑเบ)
(เปเบฎเบฑเบ
(เบเบดเบก "เบเบตเปเปเบกเปเบเบเปเบฒเปเบเบฑเบเบเบดเบ")
(เบเบดเบก "เปเบฅเบฐเปเบเบฑเบเบซเบเบฑเบเบเปเป, เปเบซเปเปเบงเบปเปเบฒเบเปเปเปเบเบงเปเบฒเบกเบฑเบเปเบเบฑเบเบเบงเบฒเบกเบเบดเบเปเบเบงเปเบ!))
(เบเบดเบก "เบญเบฑเบเบเบตเปเบเบฑเบเบเบฝเบเปเบเปเบเบญเบก"))
เปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเปเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเปเบเป do เปเบเบทเปเบญเบซเปเปเบซเบผเบฒเบเบเปเบฒเบเบฐเปเบซเบผเบเบเบฒเบ. เบเปเบฒเปเบเบปเปเบฒเบเบธเปเบเปเบเบตเบเบเบฑเบเบเบปเบเบญเบทเปเบ
Lisps, เบเบตเปเปเบกเปเบเบเบฝเบเปเบเบปเปเบฒเบเบญเบ เบเบฒเบ เบขเบนเปเบเปเบญเบเบญเบทเปเบ.
เบเบณเปเบซเบฑเบเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบเปเบเบทเปเบญเบเปเบฒเบเบเบธเบ:
(เบเบดเบก "เบเบตเปเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบ")
; (เบเบดเบก "เปเบเปเบเบตเปเบเบฐเบเปเป")
(+ 1 2 3); เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบตเปเบก, เปเบเปเบเปเปเปเบกเปเบเบเปเบฒเปเบซเบฑเบเบเบตเป!
Looping เบเปเปเบเบฒเบเปเบเปเบกเบตเบเบฐเปเบเบเบเบญเบเปเบเบเบชเปเบฒเบเบเบดเปเบชเบ. เปเบ Python, เบเบงเบเปเบฎเบปเบฒเบญเบฒเบเบเบฐเปเบฎเบฑเบ:
เบชเปเบฒเบฅเบฑเบเบเปเบญเบเปเบ เบฅเบฐเบเบฑเบ(10):
เบเบดเบก "'i' เบเบญเบเบเบตเปเบขเบนเปเบเบตเป " + str(i)
เบเบฝเบเปเบเบปเปเบฒเปเบ Hy เบเบฐเปเบเบฑเบ:
(เบชเบณเบฅเบฑเบ [i (เบเปเบงเบ 10)]
(เบเบดเบก (+ "'i' เบเบญเบเบเบตเปเบขเบนเปเบเบตเป " (str i))))
เบเบญเบเบเบฑเปเบเบเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบปเปเบฒเปเบฅเบฐเบเปเบฒเปเบเปเบซเปเบญเบเบชเบฐเบซเบกเบธเบ Python เบเปเบฒเบเป. เบเบปเบโเบเบปเบงโเบขเปเบฒเบ:
(เบเบฒเบโเบเปเบฒโเปเบเบปเปเบฒ osโ)
(เบเปเบฒ (os.path.isdir "/tmp/somedir")
(os.mkdir "/tmp/somedir/anotherdir")
(เบเบดเบก "Hey, เปเบชเบฑเปเบเบเบฒเบเบเบฑเปเบเบเปเปเบกเบต!"))
เบเบนเปเบเบฑเบเบเบฒเบเบเปเบฅเบดเบเบปเบเบเบญเบ Python (เบเบฑเบ เบเบฐเปเบซเบผเบเบเบฒเบ) เบเบทเบเบเปเบฒเปเบเปเปเบเบฑเปเบเบเบตเป:
(เบเบฑเบ [[f (เปเบเบตเบ "/tmp/data.in")]]
(เบเบดเบก (. เบญเปเบฒเบ f)))
เปเบเบดเปเบเปเบเบปเปเบฒเบเบฑเบ:
เบเปเบงเบ open("/tmp/data.in") เปเบเบฑเบ f:
เบเบดเบก f.read()
เปเบฅเบฐเปเบกเปเบเปเบฅเปเบง, เบเบงเบเปเบฎเบปเบฒเบกเบตเบฅเบฒเบเบเบทเปเบเบงเบฒเบกเปเบเบปเปเบฒเปเบ! เปเบ Python เปเบเบปเปเบฒเบญเบฒเบเบเบฐเปเบฎเบฑเบ:
odds_squared = [
pow(เบเบปเบงเปเบฅเบ, 2)
เบชเปเบฒเบฅเบฑเบเบเบปเบงเปเบฅเบเปเบ เบฅเบฐเบเบฑเบ(100โ)
เบเปเบฒเบเบปเบงเปเบฅเบ %2 == 1]
เปเบ Hy, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบชเบดเปเบเปเบซเบผเบปเปเบฒเบเบตเปเปเบเบฑเปเบ:
(setv odds-squared
(list-comp
(เปเบฅเบ 2)
(เบเบปเบงเปเบฅเบ (เปเบฅเบเบฐ 100))
(= (% เปเบฅเบ 2) 1)))
; เปเบฅเบฐ, เบเบปเบงเบขเปเบฒเบเบเบตเปเบเบทเบเบฅเบฑเบเบขเปเบฒเบเบเปเปเบกเบตเบเบงเบฒเบกเบญเบฑเบเบญเบฒเบเบเบฒเบเบซเบเปเบฒ Clojure:
; เปเบซเปเบเบญเบเบฅเบฒเบเบเบทเปเบเปเบญเบเปเบกเปเบเบฑเบเปเบปเบเบเบญเบเบเบฐเบเบฒเบเปเบฒเบเบฎเบธเบ:
(list-comp
(, xy)
(x (เปเบฅเบเบฐ 8)
y "ABCDEFGH"))
; [(0, 'A'), (0, 'B'), (0, 'C'), (0, 'D'), (0, 'E'), (0, 'F'), ( 0, 'G'), (0, 'H'),
; (1, 'A'), (1, 'B'), (1, 'C'), (1, 'D'), (1, 'E'), (1, 'F'), (1, 'F'), (1. , 'G'), (XNUMX, 'H'),
; (2, 'A'), (2, 'B'), (2, 'C'), (2, 'D'), (2, 'E'), (2, 'F'), (2, 'F'), (2. , 'G'), (XNUMX, 'H'),
; (3, 'A'), (3, 'B'), (3, 'C'), (3, 'D'), (3, 'E'), (3, 'F'), (3, 'F'), (3. , 'G'), (XNUMX, 'H'),
; (4, 'A'), (4, 'B'), (4, 'C'), (4, 'D'), (4, 'E'), (4, 'F'), (4, 'F'), (4. , 'G'), (XNUMX, 'H'),
; (5, 'A'), (5, 'B'), (5, 'C'), (5, 'D'), (5, 'E'), (5, 'F'), (5, 'F'), (5. , 'G'), (XNUMX, 'H'),
; (6, 'A'), (6, 'B'), (6, 'C'), (6, 'D'), (6, 'E'), (6, 'F'), (6, 'F'), (6. , 'G'), (XNUMX, 'H'),
; (7, 'A'), (7, 'B'), (7, 'C'), (7, 'D'), (7, 'E'), (7, 'F'), (7, 'F'), (7. , 'G'), (XNUMX, 'H')]
Python เบกเบตเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเปเบเบฝเบ fancy เบเปเบฒเบเปเปเบฅเบฐเบเบฒเบเปเบเปเบเบฝเบเบเปเบฒเบซเบฅเบฑเบ. เปเบ Python เบเบงเบเปเบฎเบปเบฒเบญเบฒเบเบเบฐ
เปเบเบดเปเบ:
>>> def optional_arg(pos1, pos2, keyword1=None, keyword2=42):
... เบเบฑเบเบเบทเบ [pos1, pos2, keyword1, keyword2]
...
>>> optional_arg(1, 2)
[1, 2, เบเปเปเบกเบต, 42]
>>> optional_arg(1, 2, 3, 4)
[1, 2, 3, 4]
>>> optional_arg(keyword1=1, pos2=2, pos1=3, keyword2=4)
[3, 2, 1, 4]
เบชเบดเปเบเบเบฝเบงเบเบฑเบเปเบ Hy:
=> (defn optional-arg [pos1 pos2 &optional keyword1 [keyword2 42]]
... [pos1 pos2 keyword1 keyword2])
=> (เบเบฒเบเปเบฅเบทเบญเบ-arg 1 2)
[1 2 เบเปเปโเบกเบต 42โ]
=> (เบเบฒเบเปเบฅเบทเบญเบ-arg 1 2 3 4)
[1 2 3 4]
เบเปเบฒเบเปเบฒเบเบเปเบฒเบฅเบฑเบเปเบเปเปเบงเบตเบเบฑเบเบเบญเบ Hy past 0.10.1 (เปเบเบฑเปเบ: git master), เบกเบฑเบเบเปเปเบกเบตเบญเบฑเบเปเบซเบกเปเบเบตเปเบชเบงเบเบเบฒเบก.
syntax argument เบเปเบฒเบชเปเบฒเบเบฑเบ:
=> (เบเบฒเบเปเบฅเบทเบญเบ-arg :keyword1 1
... :pos2 2
... :pos1 3
... :keyword2 4)
[3, 2, 1, 4]
เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเปเบเปเบเบฐเบซเบผเบญเบเปเบงเบฅเบฒ เบเปเบฒเปเบเป. เปเบเปเปเบกเปเบเบซเบเบฑเบ เบเปเบฒเปเบเป?
เบเปเบฒเบเบเบธเปเบเปเบเบตเบเบเบฑเบเบเบฒเบเบเปเบฒเบเปเบเบปเปเบฒ *args เปเบฅเบฐ **เบเบญเบ เปเบ Python?:
>>> args = [1 2]
>>> kwargs = {"keyword2": 3
... "keyword1": 4}
>>> optional_arg(*args, **kwargs)
เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเปเบเบฑเบเบเบตเปเบเปเบงเบ เบเปเบฒเปเบเป:
=> (setv args [1 2])
=> (setv kwargs {"keyword2" 3
... "keyword1" 4})
=> (เบเบณเปเบเปเบเบฒเบเปเบฅเบทเบญเบ-arg args kwargs)
[1, 2, 4, 3]
เบเบญเบเบเบฑเปเบเบเบฑเบเบกเบตเปเบเบเบชเปเบฒเบเบเบฒเบเปเบเปเบเบฝเบเบเปเบฒเบซเบฅเบฑเบเปเบเบเบงเบฑเบเบเบฐเบเบฒเบเบธเบเบปเบกเบเบตเปเบกเบตเบฅเบฑเบเบชเบฐเบเบฐเบเปเบฒเบเบเบท:
(defn เบฎเบนเบเปเบเบเบญเบทเปเบ [&key {"key1" "val1" "key2" "val2"}]
[key1 key2])
เบเบงเบฒเบกเปเบเบเบเปเบฒเบเบเบตเปเบเบตเปเปเบกเปเบเบเปเบญเบเบงเปเบฒเบกเบฑเบเปเบเบฑเบเบงเบฑเบเบเบฐเบเบฒเบเบธเบเบปเบก, เบเปเบฒเบเบเปเปเบชเบฒเบกเบฒเบเบญเบตเบเปเบชเปเบชเบฐเปเบเบฒเบฐเปเบเบเบถเปเบ
เบเปเบฒเบชเบฑเปเบเบเบฑเบเบเบฒเบเปเบเปเบเบฝเบ.
Hy เบเบฑเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ *args เปเบฅเบฐ **เบเบญเบ. เปเบ Python:
def some_func(foo, bar, *args, **kwargs):
เบเปเบฒเปเบเบปเปเบฒ pprint
pprint.pprint((foo, bar, args, kwargs))
เบเบฝเบเปเบเบปเปเบฒ Hy:
(defn some-func [foo bar &rest args &kwargs kwargs]
(เบเปเบฒเปเบเบปเปเบฒ pprint)
(pprint.pprint(, foo bar args kwargs)))
เบชเบธเบเบเปเบฒเบ, เปเบเปเบเบญเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบซเปเบญเบเบฎเบฝเบ! เปเบ Python, เบเบงเบเปเบฎเบปเบฒเบญเบฒเบเบเบฐเบกเบตเบซเปเบญเบเบฎเบฝเบเปเบเบฑเปเบ:
เบซเปเบญเบเบฎเบฝเบ FooBar(เบงเบฑเบเบเบธ):
"" "" ""
เบซเปเบญเบเบฎเบฝเบเบเบปเบงเบขเปเบฒเบเบญเบทเปเบเบญเบตเบ
"" "" ""
def __init__(เบเบปเบเปเบญเบ, x):
self.x = x
def get_x(เบเบปเบเปเบญเบ):
"" "" ""
เบเบฑเบเบเบทเบเบชเปเบฒเปเบเบปเบฒเบเบญเบเบเบงเบเปเบฎเบปเบฒ x
"" "" ""
เบเบฑเบเบเบทเบเบเบปเบเปเบญเบ.x
เปเบ Hy:
(defclass FooBar [object]
"เบเบฑเปเบเบเบปเบงเบขเปเบฒเบเบญเบตเบเบญเบฑเบเบซเบเบถเปเบ"
[[--เปเบโเบกเบฑเบ--
(fn [เบเบปเบเปเบญเบ x]
(setv self.xx)
; เปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบญเบเบเบฒเบเบชเปเบฒเบฅเบฑเบ --init-- เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒ __init__ เบเปเบญเบเบเบฒเบเบเปเปเบกเบต
; เบซเบงเบฑเบเบงเปเบฒเบกเบฑเบเบเบฐเบซเบฒเบเปเบ :)
เบเปเปเบกเบต)]
[เปเบเป-x
(fn [เบเบปเบเปเบญเบ]
"เบชเบปเปเบเบเบทเบเบชเปเบฒเปเบเบปเบฒ x เบเบญเบเบเบงเบเปเบฎเบปเบฒ"
self.x)]])
เบเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเบฅเบฐเบเบฑเบเบเบฑเปเบเบฎเบฝเบเปเบเป. เปเบ Python:
เบฅเบนเบโเบเปเบฒโเบเบฑเปเบโเบฎเบฝเบ (model.Model):
name=models.CharField(max_length=255)
เบเบตเปเบขเบนเป =models.TextField()
note=models.TextField()
เปเบ Hy:
(defclass เบฅเบนเบเบเปเบฒ [model.Model]
[[เบเบทเป (เปเบกเปเบเบง.CharField :max-length 255})]
[เบเบตเปเบขเบนเป (models.TextField)]
[เบเบฑเบเบเบถเบ (model.TextField)]])
Hy <-> Python interop
เปเบเบเบเบฒเบเบเปเบฒเปเบเบปเปเบฒ Hy, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเป Hy เปเบเบเบเบปเบเบเบฒเบ Python!
เบเปเบฒเบเปเบฒเบเบเบฑเบเบเบถเบเบเปเปเปเบเบเบตเปเปเบ เบเบฑเบเบเบฒเบ.hy:
(defn เบเบฑเบเบเบฒเบ [เบเบทเป] (เบเบดเบก "เบชเบฐเบเบฒเบเบเบตเบเบฒเบ hy," เบเบทเป))
เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบกเบฑเบเปเบเปเปเบเบเบเบปเบเบเบฒเบ python, เปเบเบเบเบฒเบเบเปเบฒเปเบเบปเปเบฒ hy เบเปเบญเบเบเบตเปเบเบฐเบเปเบฒเปเบเบปเปเบฒเปเบกเบเบนเบ. เปเบ
python:
เบเปเบฒเปเบเบปเปเบฒ hy
เบเปเบฒเปเบเบปเปเบฒเบเปเบฒเบเบปเบกเปเบเบตเบ
greetings.greet("Foo")
เบเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเบเบฐเบเบฒเบเบเบฑเบเบเบฑเบเปเบ python (เบซเบผเบทเปเบกเปเบเบฐเบเบฑเปเบ class!) เปเบฅเบฐเปเบเปเบกเบฑเบเปเบ Hy!
เบเปเบฒเบเปเบฒเบเบเบฑเบเบเบถเบเบเปเปเปเบเบเบตเปเปเบ เบเบฑเบเบเบฒเบ.py เปเบ Python:
def เบเบฑเบเบเบฒเบ(เบเบทเป):
เบเบดเบก("เบชเบฐเบเบฒเบเบเบต, %s" % (เบเบทเป))
เบเปเบฒเบโเบชเบฒโเบกเบฒเบโเบเปเบฒโเปเบเปโเบกเบฑเบโเปเบ Hyโ:
(เบเบฒเบโเบเปเบฒโเปเบเบปเปเบฒโเบเบปเบกโเปเบเบตเบโ)
(.เบเบฑเบเบเบฒเบเบเบฑเบเบเบฒเบ "foo")
เปเบเบทเปเบญเปเบเปเบเบฒเบเปเบเปเบเบฝเบเบเปเบฒเบซเบฅเบฑเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเปเบ เบเบฑเบเบเบฒเบ.py:
def เบเบฑเบเบเบฒเบ(เบเบทเป, title="Sir"):
print("เบชเบฐเบเบฒเบเบเบต, %s %s" % (เบเบทเป,เบเบทเป))
(เบเบฒเบโเบเปเบฒโเปเบเบปเปเบฒโเบเบปเบกโเปเบเบตเบโ)
(.เบเบฑเบเบเบฒเบเบเบฑเบเบเบฒเบ "Foo")
(.เบเบฑเบเบเบฒเบ "Foo" "Darth")
(apply (. greetings greet) ["Foo"] {"title" "เบเบฃเบฐโเบเบนเปโเปเบเบฑเบโเปเบเบปเปเบฒ"})
เบเบถเปเบเบเบฐเบญเบญเบ:
เบเบปเบกเปเบเบตเบ, เบเปเบฒเบ Foo
เบเบปเบกเปเบเบตเบ, Darth Foo
เบเบปเบกเปเบเบตเบ, เบเบฃเบฐเบเบนเปเปเบเบฑเบเปเบเบปเปเบฒ Foo
เปเบเบฑเบเบฅเบฑเบ!
Hy เบเบฑเบเบกเบตเบเบฒเบเบญเบฑเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒ "เบกเบฐเบซเบฒเบเบฒเบเบเบฐเบเบนเป", เปเบเบฑเบเบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเบชเบฐเบญเบฒเบเปเบเปเป
Clojure เบเบญเบ. "เบกเบฐเบซเบฒเบเบฒเบเบเบฐเบเบนเป" (เบเบฝเบเปเบเบฑเบ ->) เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเบฎเบฑเบเปเบฅเบดเบเบเบญเบ
เบชเบณ เบเบงเบ.
macro threading เปเบเบเปเบเปเบฅเบฐ expression เปเบเบปเปเบฒเปเบเปเบ argument เบเบณเบญเบดเบเบเบญเบ expression เบเปเปเปเบ
เบชเบฐเบเบฒเบเบเบตเป.
เปเบญเบปเบฒเปเบเบเบเบฅเบฒเบชเบชเบดเบ:
(loop (เบเบดเบก (eval (เบญเปเบฒเบ))))
เปเบเบเบเบตเปเบเบฐเบเบฝเบเปเบเบเบเบฑเปเบ, เปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเบฝเบเปเบเปเบเบฑเปเบเบเบตเป:
(-> (เบญเปเบฒเบ) (eval) (เบเบดเบก) (เบงเบปเบ))
เปเบเบเบฑเบเบเบธเบเบฑเบ, เบเบฒเบเบเปเบฒเปเบเป python-sh, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบชเบฐเปเบเบเบงเบดเบเบตเบเบฒเบ macro threading (เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบญเบ python-sh)
เบชเบฒโเบกเบฒเบโเบเปเบฒโเปเบเปโเบเบทโเบเบฑเบโเบเปเปโ:
=> (เบเปเบฒเปเบเบปเปเบฒ [sh [cat grep wc]])
=> (-> (cat "/usr/share/dict/words") (grep "-E" "^hy") (wc "-l"))
210
เปเบเบดเปเบ, เปเบเปเบเบญเบ, เบเบฐเบซเบเบฒเบเบญเบญเบเปเบ:
(wc (grep (cat "/usr/share/dict/words") "-E" "^hy") "-l")
เบญเปเบฒเบเปเบเปเบซเบผเบฒเบ, เบเปเปเปเบกเปเบเบเป? เปเบเป macro threading!
HY STYLE GUIDE
"เปเบเบปเปเบฒเบฎเบนเป, เบฅเบฑเบเบเบฐเบกเบปเบเบเบต, เบเปเบญเบเบเปเปเปเบซเบฑเบเบเบตเบเบฑเบ Dumbledore เปเบเบซเบผเบฒเบเปเบเปเป ... เปเบเปเบเปเบฒเบเบเปเปเบชเบฒเบกเบฒเบเบเบฐเบเบดเปเบชเบเบฅเบฒเบง.
เปเบเปเบฎเบนเบเปเบเบโฆโ โ Phineas Nigellus Black, Harry Potter เปเบฅเบฐ เปเบเป เบเปเบฒโเบชเบฑเปเบ of เปเบเป Phoenix
เบเบนเปเบกเบทเปเบเบ Hyve เบเบฑเปเบเปเบเปเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบเบทเปเบเบเบฒเบเบชเปเบฒเบฅเบฑเบ Hyve (เปเบกเปเบเปเบฅเปเบง, เบเบธเบกเบเบปเบ Hy
prides เบเบปเบงเบเบญเบเบกเบฑเบเปเบญเบเปเบเบเบฒเบเปเบเบตเปเบกเปเบเบตเบก Hy เบเบฑเบเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบ) เบเบฝเบเบฅเบฐเบซเบฑเบ Hy idiomatic. Hy เบกเบฒเบเบฒเบเบซเบผเบฒเบ
เบเบฒเบ Clojure & Common Lisp, เปเบเบเบฐเบเบฐเบเบตเปเบฎเบฑเบเบชเบฒ Python interopability เบขเบนเปเบชเบฐเปเปเบต.
prelude
เปเบเป เบเบฒเบง of Hy
เบญเบนเบกเบกเบญเบเบเบฒเบกเบเบฐเบซเบปเบงเบงเปเบฒ, "เปเบเบปเปเบฒเบเบณเบฅเบฑเบเบเบฑเบเบเบฒเบเปเบฅเบทเปเบญเบเบซเบเบฑเบ?"
"เบเบฃเบฐเบเบดเบเบเบฒเบ Sutra."
"เบเบฃเบฐเบเบดเบเบเบฒเบเบกเบตเบเบฃเบฐเบเบฑเบก XNUMX เบญเบฑเบ, เบเปเปเปเบกเปเบเบเป?"
"เบกเบฑเบโเบกเบต."
Ummon เบเบฒเบก, เปเบญเบปเบฒเบเบญเบเบเบถเปเบ, "เบกเบตเบเบธเบเบเบฒเบกเบเบงเบฒเบกเบเบตเบซเบผเบฒเบเบญเบฑเบเบเบตเป?"
"เบเปเปเบกเบตเปเบฅเบตเบ," เบเบฃเบฐเบชเบปเบเบเปเบฒเบง.
"เปเบเปเบเบปเบเบเบนเบฎเบฒเบเปเบงเบปเปเบฒเบงเปเบฒเบกเบฑเบเบกเบต, เบเปเปเปเบกเปเบเบเป?" Ummon เบเปเบฒเบง.
"เปเบเบปเปเบฒเบเบดเบเปเบเบงเปเบเบเบฑเบเบชเบดเปเบเบเบตเปเบเบงเบเปเบเบปเบฒเปเบงเบปเปเบฒ?"
Ummon เบเบตเบเบญเบเปเบฅเบฐเบเบฒเบกเบงเปเบฒ, "เปเบเบปเปเบฒเปเบเบปเปเบฒเปเบเบเป?"
โเบเปเป,โ เบเบฃเบฐเบชเบปเบเปเบงเบปเปเบฒ.
"เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ," Ummon เปเบงเบปเปเบฒเบงเปเบฒ, "เบเปเบฒเบเบเบงเบเบเบฐเบชเบทเบเบเปเปเบเบฒเบเบเบฑเบเบเบฒเบเบเบญเบเบเปเบฒเบเบเปเบฝเบงเบเบฑเบ sutra."
โ เบกเบฐเบซเบฒเบเบฒเบ (koan).
เบเปเปเปเบเบเบตเปเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเปเบเบดเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบซเบเปเปเบเบญเบเบเบฒเบเบเบฑเบเบชเบดเบเปเบเบญเบญเบเปเบเบเบเบตเปเปเบเปเปเบเบปเปเบฒเปเบเปเบเบเบฒเบเบชเปเบฒเบเบเบญเบ
เบฎเบด.
ยท เปเบเบดเปเบเบเบท Lisp; DTRT เบเบฑเบเบกเบฑเบ (เปเบเบฑเปเบ: dashes เบซเบฑเบเปเบเบซเบฒ underscores, earmuffs เบซเบฑเบเปเบเบซเบฒ
all-caps).
ยทเบเบงเบเปเบฎเบปเบฒเบเบฑเบเปเบเบฑเบ Python. เบเบฒเบเปเบเบชเปเบงเบเปเบซเบเปเปเบ 1:1 เปเบเบฑเบ Python เบเบฒเบเปเบ.
ยท เปเบเป Unicode เบขเบนเปเบเบปเปเบงเบเบธเบเปเบซเปเบ.
ยท เปเบเปเปเบเบเบฒเบเบเบฑเบเบชเบดเบเปเบเบเบตเปเบเปเปเบเบตเปเบ Python 2 เปเบกเบทเปเบญเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเป (เปเบเบดเปเบ true_division).
ยท เปเบกเบทเปเบญเบชเบปเบเปเบช, เบเบฐเบฅเบธเบเบฒเปเบฅเบทเปเบญเบเปเบเบเบตเป Python.
ยท เบเปเบฒเบเปเบฒเบเบเบฑเบเบเปเปเปเบเปเปเบ, เปเบซเปเปเบฅเบทเปเบญเบเปเบเบเบตเป Clojure.
ยท เบเปเบฒเปเบเบปเปเบฒเบเปเปเปเบเปเปเบเบซเบผเบฒเบ, เปเบซเปเปเบฅเบทเปเบญเบเปเบเบเบตเป Common Lisp.
ยท เบเบปเปเบเบเบทเปเปเบงเปเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเปเปเบกเปเบ Clojure. เบเบงเบเปเบฎเบปเบฒเบเปเปเปเบกเปเบ Lisp เบเบปเปเบงเปเบ. เบเบงเบเปเบฎเบปเบฒเปเบกเปเบ Homoiconic Python, เบเบฑเบ
เบเบดเบเบเบดเปเบชเบเบเบตเปเปเบฎเบฑเบเปเบซเปเบเบงเบฒเบกเบฎเบนเปเบชเบถเบ.
Layout & เบซเบเปเป เปเปเบฒ
ยท เบซเบผเบตเบโเปเบงเบฑเปเบโเบเบฒเบโเบชเบฐโเบเบฒเบโเบเบตเปโเบเบดเบโเบเบฒเบกโ. เบเบงเบเปเบเบปเบฒเบเบนเบ!
ยท เบเบฒเบเบซเบเปเปเปเปเบฒเบเบฐเปเบเบฑเบ 2 เบเปเบญเบ (เบเปเปเบกเบตเปเบเบเปเบเบ), เบเบปเบเปเบงเบฑเปเบเปเบกเบทเปเบญเบเบปเบเบเบฑเบเบเบฒเบเบซเบเปเปเปเปเบฒเบเบญเบ
เปเบเบงเบเบตเปเบเปเบฒเบเบกเบฒ.
;; เบเบต (เปเบฅเบฐเบกเบฑเบ)
(defn fib [n]
(เบเปเบฒ (<= n 2)
n
(+ (fib (- เบ 1)) (fib (- เบ 2))))))
;; เบเบฑเบเบเปเปเปเบเบฑเบเบซเบเบฑเบ
(defn fib [n]
(เบเปเบฒ (<= n 2) n (+ (fib (- n 1))) (fib (- n 2))))))
;; เบเบฑเบเบเปเปเปเบเบฑเบเบซเบเบฑเบ
(defn fib [n]
(เบเปเบฒ (<= n 2)
n
(+ (fib (- เบ 1)) (fib (- เบ 2))))))
;; เบเบตเปเบเปเบฒเบเบเบตเปเบเปเบฒเบ
(defn fib [n]
(เบเปเบฒ (<= n 2)
n ;; เปเบกเปเบเปเบฅเปเบง, เบเปเบญเบเบกเบฑเบเบเบฒเบเบเบตเบเบฐเปเบเบเปเบญเบเปเบเบเบชเบธเปเบก
(+ (fib (- เบ 1)) (fib (- เบ 2))))))
ยท เบงเบปเบเปเบฅเบฑเบเบเปเบญเบ เบเปเปเปเบเบตเบ เบเบทเบเบเบฐเปเบงเปเบขเบนเปเบเบปเบเบเบฝเบง, เปเบชเบเปเบชเบปเปเบฒเปเบฅเบฐเปเบเบเบเปเบฝเบงเบขเบนเปเปเบเบชเบฒเบเบเบญเบเบเบปเบเปเบญเบ.
;; เบเบต (เปเบฅเบฐเบกเบฑเบ)
(defn fib [n]
(เบเปเบฒ (<= n 2)
n
(+ (fib (- เบ 1)) (fib (- เบ 2))))))
;; เบเบตเปเบเปเบฒเบเบเบตเปเบเปเบฒเบ
(defn fib [n]
(เบเปเบฒ (<= n 2)
n
(+ (fib (- เบ 1)) (fib (- เบ 2)))
)
); GAH, เปเบเบปเบฒเบกเบฑเบเบเปเบงเบเปเบ
ยท เบเบฑเบเบฎเบฝเบเบเบฒเบกเปเบเบงเบเบฑเปเบ เปเบซเป เบเบฑเบ.
(เปเบซเป [[foo (bar)]
[qux (baz)]]
(foo qux))
ยท เบเบณเปเบซเบฑเบเปเบเปเบเบงเบเบฐเปเบเบฑเบเบชเบญเบเบเปเบญเบเบเบฒเบเบเปเบฒเบเบฅเบฐเบซเบฑเบ; เบเบงเบเปเบเบปเบฒเปเบเบปเปเบฒเบชเบฐเปเบซเบกเบตเบเปเบญเบเบกเบต
เบเปเบญเบเบซเบงเปเบฒเบเบฅเบฐเบซเบงเปเบฒเบเบเบปเบงเบญเบฑเบเบชเบญเบเบเบณเปเบซเบฑเบ เปเบฅเบฐเบเบธเบเปเบฅเบตเปเบกเบเบปเปเบเบเบญเบเบเบณเปเบซเบฑเบ. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเบฐเบเบฒเบเบฒเบกเบเปเป
เบเปเบฒโเปเบซเบฑเบโเบเบตเปโเบเบฐโเปเบเปเบโ.
;; เบเบต
(setv ind (dec x)); เบเบฑเบเบชเบฐเบเบตเปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบ 0
;; เบชเบญเบเบเปเบญเบเบเบฑเบเบชเบฐเปเบเบฅเป เปเบเปเบเบฝเบเปเบเปเบฅเบฐเบเบธเบขเปเบฒเบเบเบฑเบเปเบเบ
(setv ind (dec x)); เบเบฑเปเบเบเบฑเบเบเบฐเบเบตเปเบเบฑเบ x-1
;; เบเปเปเบเบต
(setv ind (dec x));เบเบดเบกเบเบณเบชเบฑเบเปเบเบทเปเบญเบเบงเบฒเบกเบกเปเบงเบเบเบทเปเบ
เบฅเบฐเบซเบฑเบ เปเบเบ
ยท เปเบเบฑเบเบชเบปเบเบเบดเบชเบฑเบเบเบฒ, เบเบฐเบเบฒเบเบฒเบกเบเปเปเปเบเป def เบชเปเบฒเบฅเบฑเบเบชเบดเปเบเบญเบทเปเบเบเบญเบเบเบฒเบเบเบปเบงเปเบเบเบปเปเบงเปเบฅเบ; เปเบเป เบเบธเบ
เบเบฒเบเปเบเบเบฑเบเบเบฑเบ, loops, เปเบฅเบฐเบญเบทเปเบเป.
;; เบเบต (เปเบฅเบฐเบกเบฑเบ)
( def * เบเปเบฒเบเบฑเบ * 400000 )
(defn fibs [ab]
(เปเบเบเบฐเบเบฐเบเบตเปเปเบเบฑเบเบเบงเบฒเบกเบเบดเบ
(เบเบปเบเบเบฐเบฅเบดเบ เบ)
(setv (, ab) (, b (+ ab)))))
;; เบเปเปเบเบต (เปเบฅเบฐเบเปเปเบกเบฑเบ)
(defn fibs [ab]
(เปเบเบเบฐเบเบฐเบเบตเปเปเบเบฑเบเบเบงเบฒเบกเบเบดเบ
(เบเบปเบเบเบฐเบฅเบดเบ เบ)
(def (, ab) (, b (+ ab)))))
ยท เบขเปเบฒเปเบเป syntax s-expression เบเปเบญเบเบเบตเป syntax vector เปเบกเปเบเบกเบตเบเบธเบเบเบฐเบชเบปเบ. เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, เบเบงเบฒเบกเบเบดเบ
เบงเปเบฒเบญเบฐเบเบตเบเบเบญเบเบชเบญเบเบเบปเบงเบขเปเบฒเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบเบฝเบเปเบเปเบเปเบญเบเบงเปเบฒ compiler เบเปเปเบเบฝเบเปเบเปเปเบเบตเบเปเบ
เปเบเบฑเปเบเบเบฑเบ. เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, syntax เบเบตเปเบเบทเบเบเปเบญเบเปเบเบชเบฐเบเบฒเบเบเบตเปเปเบเบฑเปเบเบเบตเปเปเบกเปเบเบญเบฑเบเบชเบธเบเบเปเบฒเบ.
;; เบเปเปเบเบต (เปเบฅเบฐเบเบปเปเบง)
(defn foo (x) (เบเบดเบก x))
(foo 1)
;; เบเบต (เปเบฅเบฐเบกเบฑเบ)
(defn foo [x] (เบเบดเบก x))
(foo 1)
ยท เบเบณเปเบเป macro threading เบซเบผเบท threading tail macro เปเบกเบทเปเบญเบเบปเบเบเบฑเบเบเบฒเบเบเบฑเบเปเบฅเบดเบ
s-เบชเบฐเปเบเบเบญเบญเบ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบกเบตเบเบงเบฒเบกเบเบธเบเบดเบเปเบฒเปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเปเบเปเบเบงเบเบกเบฑเบ. เปเบเปเบเบงเบเบกเบฑเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบงเบฒเบกเบเบฑเบเปเบเบเปเบฅเบฐ
readability เบเบฑเบเบเบธเบ; เบเปเปเบชเปเบฒเบ convoluted, เบเบฒเบเบเบตเปเบเบฐเปเบเบปเปเบฒเปเบเบชเปเบฒเบเบงเบ.
;; เบเปเบญเบเบเบฒเบ
( def * เบเบทเป *
(เบเบฑเบ [f (เปเบเบตเบ "names.txt")]
(-> (.read f) (.strip) (.replace "\"" "") (.split ",") (เบเบฑเบเบฎเบฝเบ))))
;; เบเปเปเบเบตเบเบฒเบเปเบ
( def * เบเบทเป *
(เบเบฑเบ [f (เปเบเบตเบ "names.txt")]
(เบเบฑเบเบฎเบฝเบ (.split "," (. เปเบเบเบเบตเป "\"" "" (.strip (.read f)))))))
;; เบญเบฒเบเบเบฐเบเปเปเปเบเบฑเบเบเบงเบฒเบกเบเบดเบเบเบตเปเบเบต
( defn square? [x]
(->> 2 (pow (int (sqrt x))) (= x)))
ยท เบเบฒเบเปเบฒเบเบเบธเบเปเบเบ Clojure เปเบกเปเบเบกเบฑเบเบซเบผเบฒเบเบเบงเปเบฒเบเบฒเบเปเบญเบตเปเบเปเบเบเบเบปเบเบเบญเบเบงเบดเบเบตเบเบฒเบเบเบญเบเบงเบฑเบเบเบธ,
เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบฑเบเบชเบญเบเบเบฐเบชเบทเบเบเปเปเปเบเปเบฎเบฑเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ.
;; เบเบต
(เบเบฑเบ [fd (เปเบเบตเบ "/ etc / passwd")]
(เบเบดเบก (.readlines fd)))
;; เบเปเปเบเบตเบเบฒเบเปเบ
(เบเบฑเบ [fd (เปเบเบตเบ "/ etc / passwd")]
(เบเบดเบก (fd.readlines)))
เบชเบฐเบซเบผเบธเบ
โเปเบเบเบฑเบเบเบฐเบซเบฒเบเปเบ, เปเบเบเปเบเบฑเบเบเบดเบฅเบฑเบเบเบญเบโโYves Saint Laurent
เบเบนเปเบกเบทเบเบตเปเปเบกเปเบเบเบฝเบเปเบเปเบเบธเบเบเปเบฒเปเบเบฐเบเปเบฒเบเบญเบเบเบธเบกเบเบปเบ, เปเบฅเบฐเปเบเปเบเบญเบ, เบเปเบฒเปเบเบฐเบเปเบฒเบเบญเบเบเบธเบกเบเบปเบเปเบฎเบฑเบ
เบเปเปเบกเบตเบเบงเบฒเบกเบซเบกเบฒเบเปเบเบเบเปเปเบกเบตเบเบธเบกเบเบปเบเบเบตเปเบกเบตเบเบฒเบเปเบเบทเปเบญเบเปเบซเบง. เบเบฒเบเบเบฐเบเบญเบเบชเปเบงเบเปเบกเปเบเบเบดเบเบเบตเบเปเบญเบเบฎเบฑเบ. เปเบเบปเปเบฒเบฎเปเบงเบกเบเบฑเบเบเบงเบเปเบฎเบปเบฒเบเบตเป #hy in
freenode, blog เบเปเบฝเบงเบเบฑเบเบกเบฑเบ, tweet เบเปเบฝเบงเบเบฑเบเบกเบฑเบ, เปเบฅเบฐเบชเปเบฒเบเบฑเบเบเบตเปเบชเบธเบ, เบกเบตเบเบงเบฒเบกเบกเปเบงเบเบเบฑเบ Hy.
เบเปเบเบญเบเปเบ
ยท เบเบนเปเบกเบทเบเบตเปเปเบเปเบฎเบฑเบเบเบฒเบเบเบปเบเปเบเบซเบผเบฒเบเบเบฒเบ @paultag เบเบญเบ blog เบเบญเบ Hy เบเบฒเบเบขเบนเปเบฅเบญเบ เบเบนเปโเบกเบท
ยทเบ Clojure เปเบเบ เบเบนเปโเบกเบท
เปเบญเบเบฐเบชเบฒเบเบญเปเบฒเบเบญเบตเบ INDEX
เปเบเบทเปเบญเปเบ:
เบเปเบฒเบชเบฑเปเบ เบญเบญเบเปเบฅเบเป เบเบฒเบเปเบเปเบเบญเบ
hy
เบเปเบฒเบชเบฑเปเบ เบญเบญเบเปเบฅเบเป เบเบฒเบเปเบฅเบทเบญเบเปเบเบเบฒเบ
-c
เบเบฐเบเบดเบเบฑเบเบฅเบฐเบซเบฑเบ Hy เปเบ เบเปเบฒเบชเบฑเปเบ.
$ hy -c "(เบเบดเบก (+ 2 2))"
4
-i
เบเบฐเบเบดเบเบฑเบเบฅเบฐเบซเบฑเบ Hy เปเบ เบเปเบฒเบชเบฑเปเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบขเบนเปเปเบ REPL.
-m
เบเบฐเบเบดเบเบฑเบเบฅเบฐเบซเบฑเบ Hy เปเบ เปเบกเบเบนเบ, เบฅเบงเบกเบเบฑเบ defmain เบเปเบฒเบเปเบฒเบเบปเบ.
เปเบเป -m เบเบธเบเบขเบธเบเบฅเบฒเบเบเบฒเบเบเบฒเบเปเบฅเบทเบญเบเปเบเบทเปเบญเปเบซเปเบเบฒเบเปเบเปเบเบฝเบเบเบฑเบเบซเบกเบปเบเบซเบผเบฑเบเบเบฒเบ เปเบกเบเบนเบ เบเบทเป
เบเบทเบเบชเบปเปเบเบเบฑเบเปเบกเบเบนเบเปเบ sys.argv.
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.2.
--Spy เบเบดเบกเบฅเบฐเบซเบฑเบ Python เบเบฝเบเปเบเบปเปเบฒเบเปเบญเบเบเบตเปเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบ. เบเบปเบโเบเบปเบงโเบขเปเบฒเบ:
=> (defn salutationsnm [เบเบทเป] (เบเบดเบก (+ "Hy "เบเบทเป "!")))
def salutationsnm(เบเบทเป):
เบเบดเบกเบเบทเบ (((u'Hy ' + เบเบทเป) + u'!'))
=> (เบเปเบฒเบเบปเบกเปเบเบตเบ "เบเบทเปเบเบญเบเปเบเบปเปเบฒ")
เบเบณเบเบปเบกเปเบเบตเบnm(u'เบเบทเปเบเบญเบเปเบเบปเปเบฒ')
เบเบทเปเบเบญเบเปเบเบปเปเบฒ!
=>
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.9.11.
--show-tracebacks
เบเบดเบก tracebacks เบเบฐเบซเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเปเบงเบฑเปเบ Hy.
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.9.12.
-v เบเบดเบกเปเบฒเบเปเบฅเบเบฅเบธเปเบ Hy เปเบฅเบฐเบญเบญเบ.
hyc
เบเปเบฒเบชเบฑเปเบ เบญเบญเบเปเบฅเบเป เบเบฒเบเปเบฅเบทเบญเบเปเบเบเบฒเบ
เปเบเบฅเป[, fileN]
เบฅเบงเบเบฅเบงเบกเบฅเบฐเบซเบฑเบ Hy เบเบฑเบ Python bytecode. เบเบปเบงเบขเปเบฒเบ, เบเบฑเบเบเบถเบเบฅเบฐเบซเบฑเบเบเปเปเปเบเบเบตเปเปเบเบฑเบ
hyname.hy:
(defn hy-hy [เบเบทเป]
(เบเบดเบก (+ "Hy "เบเบทเป "!")))
(hy-hy "Afroman")
เบเบฒเบเบเบฑเปเบเปเบฅเปเบ:
$ hyc hyname.hy
$ python hyname.pyc
เบญเบตเปเบญเบฒเปเบเบฃเปเบกเบ!
hy2py
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.1.
เบเปเบฒเบชเบฑเปเบ เบญเบญเบเปเบฅเบเป เบเบฒเบเปเบฅเบทเบญเบเปเบเบเบฒเบ
-s
--with-source
เบชเบฐเปเบเบเปเบเบเบชเปเบฒเบเปเบซเบผเปเบเบเบตเปเบงเบดเปเบเบฒเบฐเปเบฅเปเบง.
-a
--with-ast
เบชเบฐเปเบเบ AST เบเบตเปเบชเปเบฒเบเบเบถเปเบ.
-e.g
-- เปเบเบเบเปเปเบกเบตเบเบฒเบ python
เบขเปเบฒเบชเบฐเปเบเบเบฅเบฐเบซเบฑเบ Python เบเบตเปเบชเปเบฒเบเบเบถเปเบเบเบฒเบ AST.
Hy (เปเบเป เบเบฒเบชเบฒ)
เบเปเบฒเปเบเบทเบญเบ:
เบเบตเปเปเบกเปเบเบเปเปเบเบปเบเบเปเบงเบ; เบเบฐเบฅเบธเบเบฒเบเบดเบเบฒเบฅเบฐเบเบฒเบเบฐเบเบญเบเบชเปเบงเบเปเบเบปเปเบฒเปเบเบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเปเบญเบเบฐเบชเบฒเบ.
เบเบดเบเบชเบฐเบเบต of Hy
Hy เบฎเบฑเบเบชเบฒ, เบซเบผเบฒเบเบเบงเปเบฒเบชเบดเปเบเบญเบทเปเบ, เบเบงเบฒเบกเปเบเบปเปเบฒเบเบฑเบเปเบเป 100% เปเบเบเบฑเบเบชเบญเบเบเบดเบเบเบฒเบเบเบฑเบ Python
เบเบปเบงเบเบญเบเบกเบฑเบเปเบญเบ. เบฅเบฐเบซเบฑเบ Hy เบเบฑเบเปเบปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบกเบเบปเบเบฅเบฐเบเบฝเบเบเปเบฒเบเปเบเปเปเบซเบผเบฒเบเบเบฒเบเปเบ. เบเบทเปเปเบงเป, เบเปเบญเบเบงเปเบฒเบกเบฑเบเบเบฐเปเบเบปเปเบฒเบกเบฒ
เบกเบตเบเบฐเปเบซเบเบ.
เบเบปเบเบฅเบฐเบเบฝเบเปเบซเบผเบปเปเบฒเบเบตเปเบเปเบงเบเปเบซเปเปเบเปเปเบเบงเปเบฒเบฅเบฐเบซเบฑเบ Hy เปเบกเปเบ idiomatic เปเบฅเบฐเบเบฒเบเปเบเปเบเบญเบเปเบเบเบฑเบเบชเบญเบเบเบฒเบชเบฒ.
ยท เบชเบฑเบเบเบฒเบฅเบฑเบเปเบ earmufs เบเบฐเบเบทเบเปเบเปเบเบฑเบเบเบปเบงเบเบดเบกเปเบซเบเปเบเบญเบเบชเบฐเบเบฃเบดเบเบเบฑเปเบ. เบชเปเบฒเบฅเบฑเบ
เบเบปเบเบเบปเบงเบขเปเบฒเบ, เบเบน เบเบฐโเบเบฒเบโเปเบเบฑเบ FOO.
ยท UTF-8 เบซเบเปเบงเบเบเบฒเบเบเบฐเบเบทเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเปเบเบเปเบเป เบฅเบฐเบซเบฑเบเปเบเบ เปเบฅเบฐเบเบณเปเปเบฒเบเปเบงเบ hy_. เบเบปเบงโเบขเปเบฒเบ, โ
เบเบฐโเบเบฒเบโเปเบเบฑเบ hy_w7h, โฅ เบเบฐโเบเบฒเบโเปเบเบฑเบ hy_g6h, เปเบฅเบฐ iโฅu เบเบฐโเบเบฒเบโเปเบเบฑเบ hy_iu_t0x.
ยท เบชเบฑเบโเบเบฒโเบฅเบฑเบโเบเบตเปโเบเบฐโเบเบญเบโเบเปเบงเบ dashes เบเบฐโเปเบซเปโเปเบเบปเบฒโเปเบเบปเปเบฒโเบเบปเบโเปเบเบโเบเบตเปโเบกเบตโเบเบตเบโเบเปเบญเบโ. เบเบปเบโเบเบปเบงโเบขเปเบฒเบ,
render-เปเบกเปเปเบเบ เบเบฐโเบเบฒเบโเปเบเบฑเบ render_template. เบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบชเบฑเบเบเบฒเบฅเบฑเบเบเบตเปเบกเบต dashes เบเบฐ
shadow เบเบฝเบเปเบเบปเปเบฒ underscore เบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒ, เปเบฅเบฐเปเบเบเบฒเบเบเบฑเบเบเบฑเบ.
Built-Ins
Hy เบกเบตเบฅเบฑเบเบชเบฐเบเบฐเบเบดเปเบชเบเบเปเบฒเบเบงเบเบซเบเบถเปเบเบเบตเปเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบงเบเบชเปเบฒเบ Python AST เบเบตเปเบเบทเบเบเปเบญเบ.
เบเปเปเปเบเบเบตเปเปเบกเปเบเบฎเบนเบเปเบเบ "เบเบดเปเบชเบ", เปเบเบดเปเบเบญเบฒเบเบเบฐเบกเบตเบเบถเบเบเบดเบเปเบฒเบเบตเปเบเปเปเบเบฒเบเบเบดเบเปเบฅเบฑเบเบเปเบญเบเปเบ
เบเบฒเบเบชเบฐเบเบฒเบเบฐเบเบฒเบ.
.
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.0.
. เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเบเบญเบเบงเบฑเบเบเบธ. เบกเบฑเบเปเบเป DSL เบเบฐเบซเบเบฒเบเบเปเบญเบเปเบเบทเปเบญเบญเบฐเบเบธเบเบฒเบเปเบซเปเปเบง
เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบธเบเบชเบปเบกเบเบฑเบ เปเบฅเบฐเบฅเบฒเบเบเบฒเบเปเบเปเบเบเบชเปเบฒเบเบเปเปเบกเบนเบเบเบตเปเบเบดเบเบเบฑเบ.
เบเบปเบงโเบขเปเบฒเบ,
(. foo bar baz [(+ 1 2)] frob)
เบฅเบงเบเบฅเบงเบกเบฅเบปเบเปเบเบฑเบ:
foo.bar.baz[1+2].frob
. เบฅเบงเบเบฅเบงเบกเบเบฒเบเปเบเปเบเบฝเบเบเปเบฒเบญเบดเบเบเบญเบเบกเบฑเบ (เปเบเบเบปเบงเบขเปเบฒเบ, เบเบน) เปเบเบฑเบเบงเบฑเบเบเบธเบเบตเปเบเบฐเปเบฎเบฑเบเปเบเป
เบเบฒเบเบญเปเบฒเบเบญเบตเบเบเบธเบเบชเบปเบกเบเบฑเบ. เบกเบฑเบเปเบเปเบชเบฑเบเบเบฒเบฅเบฑเบเปเบเบปเปเบฒเปเบเบฑเบเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเปเบเบทเปเบญเปเบเบปเปเบฒเปเบเบดเบ (เปเบเบเบปเบงเบขเปเบฒเบ, เบเบฒเบเบฐเบเบฒเบเบเบงเบฒเบก,
เบเบฒเบ, frob), เปเบฅเบฐเบฅเบงเบเบฅเบงเบกเปเบเบทเปเบญเปเบเบเบญเบเบฅเบฒเบเบเบทเป (เปเบเบเบปเบงเบขเปเบฒเบ, [(+ 1 2)]) เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบชเบฐเบเบต.
เบเบฒเบเปเบเปเบเบฝเบเบญเบทเปเบเบเบดเปเบกเบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบฒเบเบฅเบงเบเบฅเบงเบก.
เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเบเปเปเบฎเบนเปเบเบฑเบเบเบดเปเบกเปเบเบฑเบ เบเบธเบเบชเบปเบกเบเบฑเบเบเบดเบเบเบฒเบ. เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฐเปเบเบเบตเปเบเปเปเบฎเบนเปเบเบฑเบเบเบดเปเบกเปเบเบฑเบ
เบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบฑเบเบเบฐเบเบต (เปเบเบฅเบฒเบเบเบฒเบ เปเบฅเบฐ tuples) เบซเบผเบท เบ เบเบดเบเบเบฒเบ (เปเบเบงเบฑเบเบเบฐเบเบฒเบเบธเบเบปเบก).
->
-> (or the เบเบฐเบเบนเป เบกเบฐเบซเบฒเบเบฒเบ) เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเบฎเบฑเบเบเบญเบเบชเปเบฒเบเบงเบ. เบกเบฐเบซเบฒเบเบฒเบเบเบฐเบเบนเป
เปเบเบเปเบเปเบฅเบฐ expression เปเบเบปเปเบฒเปเบเปเบเบเปเบญเบเปเบเปเบเบฝเบเบเบณเบญเบดเบเบเบญเบ expression เบเปเปเปเบ. เบเปเปเปเบเบเบตเป
เบฅเบฐโเบซเบฑเบโเบชเบฐโเปเบเบโเปเบซเปโเปเบซเบฑเบโเบเบตเปโ:
=> (defn output [ab] (เบเบดเบก ab))
=> (-> (+ 4 6) (เบเบปเบเบเบฐเบฅเบดเบ 5))
10 5
- >>
- >> (or the เบเบฐเบเบนเป เบซเบฒเบ เบกเบฐเบซเบฒเบเบฒเบ) เปเบกเปเบโเบเปเบฒเบโเบเบทโเบเบฑเบโเบเบฑเบโ เบเบฐเบเบนเป เบกเบฐเบซเบฒเบเบฒเบ, เปเบเปเปเบเบเบเบตเปเบเบฐ
เบเบฒเบเปเบชเปเปเบเปเบฅเบฐเบชเบฐเปเบเบเบญเบญเบเปเบเบปเปเบฒเปเบเบเบฒเบเปเบเปเบเบฝเบเบเปเบฒเบญเบดเบเบเบญเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเปเปเปเบ, เบกเบฑเบเบเบทเปเบกเบกเบฑเบเปเบชเป
เบเบฒเบเปเบเปเบเบฝเบเบชเบธเบเบเปเบฒเบ. เบฅเบฐเบซเบฑเบเบเปเปเปเบเบเบตเปเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบเบตเป:
=> (defn output [ab] (เบเบดเบก ab))
=> (->> (+ 4 6) (เบเบปเบเบเบฐเบฅเบดเบ 5))
5 10
เบเปเบฒเปเบเป
เบเปเบฒเปเบเป เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบฒเปเบเปเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบฒเบเปเบฅเบทเบญเบเบเบญเบเบเบฒเบเปเบเปเบเบฝเบเปเบฅเบฐเบงเบฑเบเบเบฐเบเบฒเบเบธเบเบปเบกเบเบฒเบเปเบฅเบทเบญเบเบเบญเบ kwargs
เบเบฑเบเบซเบเปเบฒเบเบตเป.
เบเบฒเบเบเปเบฒเปเบเป: (เบชเบฐเบซเบกเบฑเบ fn-เบเบทเป [args] [kwargs])
เบเบปเบงเบขเปเบฒเบ:
( defn thunk []
"เบชเบฐเบเบฒเบเบเบต")
(เบเปโเบเบญเบโเปเบโ)
;=> "เบขเบนเปเบเบตเป"
(defn เบเบฒเบเบเบทเปเบเบฑเบเบซเบกเบปเบ [เบเปเบฒเบเบงเบเบฅเบฒเบเบฒ & เบเบฒเบเปเบฅเบทเบญเบ [เบเปเบฒเบเปเบฒเบเบฝเบก 1.05] [vat 1.1]]
(* เบเบณเบเบงเบโเบเปเบฒโเบเบณเบเบฝเบก vat))
(เบเบณเปเบเปเบเบฒเบเบเบทเปเบเบฑเบเปเบปเบ [10 15])
;=> 173.25
(เบเบณเปเบเปเบเบฒเบเบเบทเปเบเบฑเบเปเบปเบ [10 15] {"vat" 1.05})
;=> 165.375
(apply total-purchase [] {"price" 10 "amount" 15 "vat" 1.05})
;=> 165.375
เปเบฅเบฐ
เปเบฅเบฐ เบเบทเบเปเบเปเปเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบขเปเบฒเบเบกเบตเปเบซเบเบเบปเบ. เบกเบฑเบเปเบเปเปเบงเบฅเบฒเบขเปเบฒเบเบซเบเปเบญเบเบชเบญเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ. เบเปเบฒเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบฑเบเบซเบกเบปเบ
เบเบฐเปเบกเบตเบ เบเบตเปเปเบเปเบเบดเบ, เบเบฒเบฅเบฒเบกเบดเปเบเบตเบชเบธเบเบเปเบฒเบเบเบทเบเบชเบปเปเบเบเบทเบ. เปเบเบเปเบฅเบฐเบเบตเบญเบทเปเบเป, เบเปเบฒเบเบตเปเบเปเปเบเบทเบเบเปเบญเบเบเปเบฒเบญเบดเบ
เบเบฐเบเบทเบเบชเบปเปเบเบเบทเบ. เบเบปเบงเบขเปเบฒเบเบเบฒเบเบเปเบฒเปเบเป:
=> (เปเบฅเบฐ True False)
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
=> (เปเบฅเบฐ True True)
เบเบตเปเปเบเปเบเบดเบ
=> (เปเบฅเบฐเบเบงเบฒเบกเบเบดเบ 1)
1
=> (เปเบฅเบฐ True [] False True)
[]
เบซเบกเบฒเบโเปเบซเบโ:
เปเบฅเบฐ short-circuits เปเบฅเบฐเบขเบธเบเปเบเบปเบฒเบเบฒเบเบเบฐเปเบกเบตเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบฑเบเบเบตเบเบตเปเบเปเบฒเบญเบดเบเบเบดเบ
เบเบปเบ.
=> (เปเบฅเบฐเบเบดเบ (เบเบดเบก "เบชเบฐเบเบฒเบเบเบต"))
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
เบขเบทเบเบขเบฑเบ
เบขเบทเบเบขเบฑเบ เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบงเบเบชเบญเบเปเบเบทเปเบญเบเปเบเปเบเบเบฐเบเบฐเบเบตเปเปเบเบเบเบฒเบเบเปเบฒเบฅเบฑเบเปเบฎเบฑเบเบงเบฝเบ. เบเปเบฒเปเบเบทเปเบญเบเปเบเบเปเปเปเบกเปเบ
เบเบปเบ, เปเบเบฑเบ เบเบฒเบเบขเบทเบเบขเบฑเบเบเบดเบเบเบฒเบ เบเบทเบเบเบปเบเบเบถเปเบเบกเบฒ. เบขเบทเบเบขเบฑเบ เบญเบฒเบเบเบฐเปเบเปเปเบงเบฅเบฒเบซเบเบถเปเบเบซเบผเบทเบชเบญเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ. เบเปเบฒเบญเบดเบ
เบเบฒเบฅเบฒเบกเบดเปเบเบตเปเบกเปเบเปเบเบทเปเบญเบเปเบเปเบเบเบฒเบเบเบงเบเบชเบญเบ, เปเบฅเบฐเบกเบฑเบเบเบงเบเบเบฐเบเบฐเปเบกเบตเบ เบเบตเปเปเบเปเบเบดเบ or เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ. เปเบเป
เบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเบชเบญเบ, เบเบฒเบเปเบฅเบทเบญเบ, เปเบกเปเบเบเปเบฒเบเบเบทเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบขเบทเบเบขเบฑเบ, เปเบฅเบฐเปเบเบฑเบเบชเบฐเบเบฃเบดเบเบเบตเปเบเบฐเปเบเบฑเบ
เบเบปเบเบเบถเปเบเบกเบฒเบเปเบงเบ เบเบฒเบเบขเบทเบเบขเบฑเบเบเบดเบเบเบฒเบเบเบตเปเบขเบนเป เบเบปเบโเบเบปเบงโเบขเปเบฒเบ:
(เบขเบทเบเบขเบฑเบ (= variable expect-value))
(เบขเบทเบเบขเบฑเบเบเบดเบ)
; เบเบฒเบเบขเบทเบเบขเบฑเบเบเบดเบเบเบฒเบ
(เบขเบทเบเบขเบฑเบ (= 1 2) "เบซเบเบถเปเบเบเบงเบเปเบเบปเปเบฒเบเบฑเบเบชเบญเบ")
; เบเบฒเบเบขเบทเบเบขเบฑเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ: เบซเบเบถเปเบเบเบงเบเปเบเบปเปเบฒเบเบฑเบเบชเบญเบ
เบชเบฐเบซเบฒเบเบเบฃ
เบชเบฐเบซเบฒเบเบเบฃ เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเปเบเบทเปเบญเบกเปเบเบเบเบตเบเบตเปเบกเบตเบเปเบฒเปเบเบงเบฑเบเบเบฐเบเบฒเบเบธเบเบปเบกเบซเบผเบทเปเบเบทเปเบญเบเปเบฒเบเบปเบเบเบฑเบเบชเบฐเบเบตเบเบญเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเป
เปเบเบฑเบเบกเบนเบเบเปเบฒ. เบกเบฑเบเปเบเปเปเบงเบฅเบฒเบขเปเบฒเบเบซเบเปเบญเบเบชเบฒเบกเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ: the เบเปเปเบกเบนเบ เปเบเบเบเบฐเบเบญเบเบเบฒเบ เบเบตเปโเบเบฐโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเบฑเบโเปเบเปโ, a เบเบตเปเบชเปเบฒเบเบฑเบ
or เบเบฑเบเบเบฐเบเบต, เปเบฅเบฐ เบกเบนเบเบเปเบฒ. เบเปเบฒเบซเบผเบฒเบเบเบงเปเบฒเบชเบฒเบกเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบทเบเบเปเบฒเปเบเป, เบกเบฑเบเบเบฐเปเบเบทเปเบญเบกเปเบเบเปเบเบฑเบเบเบนเป.
เบเบปเบงโเบขเปเบฒเบโเบเบญเบโเบเบฒเบโเบเปเบฒโเปเบเปโ:
=>(เปเบซเป [[เบเบฒเบเบฅเบงเบเบฅเบงเบก {}]]
... (assoc เปเบเบฑเบ "เบซเบกเบฒ" "เปเบเบทเบญเบ")
... (เปเบเบฑเบโเบเปเบฒโเบเปเปโเบกเบนเบโเบเบดเบกโ))
{u'Dog': u'Bark'}
=>(เปเบซเป [[เบเบฒเบเบฅเบงเบเบฅเบงเบก {}]]
... (assoc เปเบเบฑเบ "เบซเบกเบฒ" "เปเบเบทเบญเบ" "เปเบกเบง" "Meow")
... (เปเบเบฑเบโเบเปเบฒโเบเปเปโเบกเบนเบโเบเบดเบกโ))
{u'Cat': u'Meow', u'Dog': u'Bark'}
=>(เปเบซเป [[เบเปเปเบฅเบฑเบเบเบฑเบ [1 2 3 4]]]
... (assoc collection 2 None)
... (เปเบเบฑเบโเบเปเบฒโเบเปเปโเบกเบนเบโเบเบดเบกโ))
[1, 2, เบเปเปเบกเบต, 4]
เบซเบกเบฒเบโเปเบซเบโ:
เบชเบฐเบซเบฒเบเบเบฃ เบเบฑเบเบเบธเบเปเบเบเบชเปเบฒเบเบเปเปเบกเบนเบเปเบเบชเบฐเบเบฒเบเบเบตเปเปเบฅเบฐเบเบปเบเบเบญเบเปเบเบ เบเปเปเบกเบต.
เบเบฑเบเบเปเบญเบ
เบเบฑเบเบเปเบญเบ เปเบกเปเบเปเบเปเปเบเบทเปเบญเปเบเบเบญเบญเบเบเบฒเบเบงเบปเบ. เบกเบฑเบเบขเบธเบ loop เปเบเบเบฑเบเบเบต. เบเปเปเปเบเบเบตเป
เบเบปเบงเบขเปเบฒเบเบกเบตเบญเบฑเบเปเบเบฑเบเบเบดเบ เปเบเบเบฐเบเบฐเบเบตเป loop เบเบตเปเบเบทเบเบขเบธเบเปเบเบปเบฒเบเบฑเบเบเบตเบเบตเปเบเบนเปเปเบเปเปเบเบปเปเบฒเบกเบฒ k.
(เปเบเบเบฐเบเบฐเบเบตเป True (เบเปเบฒ (= "k" (raw-input "? "))
(เบเบฑเบเบเปเบญเบ)
(เบเบดเบก "เบฅเบญเบเบญเบตเบเบเบฑเปเบ")))
เบเบปเปเบ
เบเบปเปเบ เบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบชเปเบฒเบเบฎเบฑเบ if เบเบฐเปเบซเบผเบเบเบฒเบ. เบเบปเบงเบขเปเบฒเบเบเปเปเปเบเบเบตเปเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเปเบเบดเบ
เบเบฒเบเบเบปเบงเบเบฑเบเบฅเบฐเบซเบงเปเบฒเบเบกเบฐเบซเบฒเบเบฒเบเปเบฅเบฐเบเบฒเบเบเบฐเบซเบเบฒเบเบเบญเบเบกเบฑเบ:
(cond [เปเบเบทเปเบญเบเปเบ-1 เบเบปเบเปเบเปเบฎเบฑเบ-1]
[เปเบเบทเปเบญเบเปเบ-2 เบเบปเบเปเบเปเบฎเบฑเบ-2])
(เบเปเบฒเปเบเบทเปเบญเบเปเบ-1 เบเบปเบเปเบเปเบฎเบฑเบ-1
(เบเปเบฒเปเบเบทเปเบญเบเปเบ-2 เบเบปเบเปเบเปเบฎเบฑเบ-2))
เบเบฑเปเบเบเบตเปเบชเบฐเปเบเบเบขเบนเปเบเปเบฒเบเบฅเบธเปเบกเบเบตเป, เบกเบตเบเบฝเบเปเบเปเบเบฒเบเบเบฑเบเบเบนเปเบเบปเบเปเบเปเบฎเบฑเบเบเปเบฒเบญเบดเบเบเบตเปเบเบทเบเบเบฐเบเบดเบเบฑเบ.
=> (defn check-value [เบเปเบฒ]
... (cond [(< เบเปเบฒ 5) (เบเบดเบก "เบเปเบฒเบเปเบญเบเบเบงเปเบฒ 5")]
... [(= เบเปเบฒ 5) (เบเบดเบก "เบเปเบฒเปเบเบปเปเบฒเบเบฑเบ 5")]
... [(> เบเปเบฒ 5) (เบเบดเบก "เบเปเบฒเปเบกเปเบเปเบซเบเปเบเบงเปเบฒ 5")]
... [เบเบงเบฒเบกเบเบดเบ (เบเบดเบก "เบเบธเบเบเปเบฒเปเบเบฑเบเบชเบดเปเบเบเบตเปเบเปเปเบเบงเบเปเบเบฑเบ")]))
=> (เปเบเบฑเบ-เบเปเบฒ 6)
เบเปเบฒเปเบกเปเบเปเบซเบเปเบเบงเปเบฒ 5
เบเปเบฒเปเบเบตเบเบเบฒเบเบเปเป
เบเปเบฒเปเบเบตเบเบเบฒเบเบเปเป เบชเบปเปเบเบเบทเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบซเบฒเบเบธเบเปเบฅเบตเปเบกเบเบปเปเบเบเบญเบ loop. เปเบเบเบปเบงเบขเปเบฒเบเบเปเปเปเบเบเบตเป,
(เบเบปเบเบเปเบฒเบเบเบฝเบ 1) เบเบทเบเปเบญเบตเปเบเปเบซเปเปเบเปเบฅเบฐเบเบฑเปเบ. (เบเบปเบเบเปเบฒเบเบเบฝเบ 2)เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบฝเบเปเบเปเปเบญเบตเปเบเบงเปเบฒ
เบเบธเบเปเบกเบนเบเบเปเบฒเบญเบทเปเบเปเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเป.
;; เบชเบปเบกเบกเบธเบเบงเปเบฒ (เบเบปเบเบเปเบฒเบเบเบฝเบ 1) เปเบฅเบฐ (เบเบปเบเบเปเบฒเบเบเบฝเบ 2) เปเบกเปเบเบซเบเปเบฒเบเบตเปเปเบฅเบฐ
;; เบเบฒเบเปเบเบฑเบเบเปเบฒเปเบกเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบเปเบฒเบเบปเบงเปเบฅเบ
(เบชเปเบฒเบฅเบฑเบ [x collection]
(เปเบฎเบฑเบ
(เบเบปเบเบเปเบฒเบเบเบฝเบ 1 x)
(เบเปเบฒ (% x 2)
(เบชเบทเบเบเปเป))
(เบเบปเบเบเปเบฒเบเบเบฝเบ 2 x)))
dict-comp
dict-comp เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบชเปเบฒเบเบงเบฑเบเบเบฐเบเบฒเบเบธเบเบปเบก. เบกเบฑเบเปเบเปเปเบงเบฅเบฒเบชเบฒเบกเบซเบผเบทเบชเบตเปเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ. เบเปเบฒเบญเบดเบ
เบชเบญเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเปเบกเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบงเบเบเบธเบกเบกเบนเบเบเปเบฒเบเบฑเบเบเบทเบ (เบเบนเปเบเปเบฒเบเบตเปเบชเปเบฒเบเบฑเบ) เปเบเบเบฐเบเบฐเบเบตเปเบเบตเบชเบฒเบกเปเบกเปเบ
เปเบเปเปเบเบทเปเบญเปเบฅเบทเบญเบเบฅเบฒเบเบเบฒเบเบเบฒเบเบฅเปเบฒเบเบฑเบ. เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบชเบตเปเปเบฅเบฐเบเบฒเบเปเบฅเบทเบญเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญ
เบเบฑเปเบโเบเบญเบโเบเบฒเบโเบฅเบฒเบโเบเบฒเบโเปเบโเบฅเปเบฒโเบเบฑเบโเปเบเบโเบญเบตเบโเปเบชเปโเบเบฒเบโเบชเบฐโเปเบเบโเบญเบญเบโเปเบเบทเปเบญเบโเปเบโ.
=> (dict-comp x (* x 2) [x (เปเบฅเบเบฐ 10)] (odd? x))
{1:2, 3:6, 9:18, 5:10, 7:14}.
do / เบเบฒเบ
do เปเบฅเบฐ เบเบฒเบ เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบฐเปเบกเบตเบเปเบเปเบฅเบฐเบเบฒเบเปเบเปเบเบฝเบเบเบญเบเบเบงเบเปเบเบปเบฒเปเบฅเบฐเบเบฑเบเบเบทเบเบญเบฑเบเบชเบธเบเบเปเบฒเบ. เบเบฑเบเบเบทเบ
เบเปเบฒเบเบฒเบเบเบธเบเปเบญเบฑเบเบเบตเปเบเปเปเปเบกเปเบเบเบฒเบเปเบเปเบเบฝเบเบชเบธเบเบเปเบฒเบเปเบกเปเบเบเบทเบเบเบปเบเปเบฅเบตเบ. เบกเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบ lambda or
list-comp เปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบเปเบซเบเบเบปเบเบเบตเปเบชเบฑเบเบชเบปเบเบซเบผเบฒเบเบเบฑเปเบเบเบตเปเบชเบฐเปเบเบเบขเบนเปเปเบเบซเบเบถเปเบเปเบเบเบปเบงเบขเปเบฒเบเบเปเปเปเบเบเบตเป.
เบเบฒเบโเบเปเบฒโเปเบเปโเบเบปเบงโเบขเปเบฒเบโเบเบฒเบโเบขเปเบฒเบโ:
=> (เบเปเบฒเปเบเบฑเบเบเบงเบฒเบกเบเบดเบ
... (เปเบฎเบฑเบ (เบเบดเบก "เบเบปเบเบเบฐเบเบปเบเบเปเบฒเบเบเบฝเบ rock!")
... (เบเบดเบก "เปเบกเปเบเปเบฅเปเบง, เปเบเป!")))
เบเบปเบเบเปเบฒเบเบเบฝเบ Rock!
เปเบกเปเบเปเบฅเปเบง!
;; เบชเบปเบกเบกเบธเบเบงเปเบฒ (เบเบปเบเบเบฐเบเบปเบเบเปเบฒเบเบเบฝเบ) เปเบกเปเบเบซเบเปเบฒเบเบตเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเปเบเบซเบฒเปเบเปเบฅเบฐเบเบปเบ
;; เปเบฅเบฐเบเบธเบเปเบกเบนเบเบเปเบฒเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเป, เปเบเปเบกเบนเบเบเปเบฒเบเบฑเบเบเบทเบเบกเบฒเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเปเบชเบปเบเปเบ
=> (list-comp (เปเบฎเบฑเบ (เบเบปเบเบเปเบฒเบเบเบฝเบ x)
... (เบเปเบฒ (< x 5) (* 2 x) .
... (* 4x)))
... (x (เปเบฅเบเบฐ 10)))
[0, 2, 4, 6, 8, 20, 24, 28, 32]
do เบชเบฒเบกเบฒเบเบเบญเบกเบฎเบฑเบเบเปเบฒเบเบงเบเบเบญเบเบเบฒเบเปเบเปเบเบฝเบ, เบเบฒเบ 1 เบซเบฒ n.
def / เบเบธเบ
def เปเบฅเบฐ เบเบธเบ เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบนเบเบกเบฑเบเบกเบนเบเบเปเบฒ, เบงเบฑเบเบเบธ, เบซเบผเบทเบซเบเปเบฒเบเบตเปเปเบเบฑเบเบชเบฑเบเบเบฒเบฅเบฑเบ. เบเบปเบโเบเบปเบงโเบขเปเบฒเบ:
=> (เบเบทเป define ["Alice" "Bob" "Charlie"])
=> (เบเบดเบกเบเบทเป)
[u'Alice', u'Bob', u'Charlie']
=> (setv counter (fn [เบฅเบฒเบเบเบฒเบเปเบเบฑเบ] (.count collection item)))
=> (เปเบเบปเบฒเปเบเบต [1 2 3 4 5 2 3] 2)
2
defclass
เบซเปเบญเบเบฎเบฝเบเปเบซเบกเปเปเบเปเบเบทเบเบเบฐเบเบฒเบเบเปเบงเบ defclass. เบกเบฑเบเบชเบฒเบกเบฒเบเปเบเปเปเบงเบฅเบฒเบชเบญเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบฒเบเปเบฅเบทเบญเบ: เปเบเบฑเบ vector
เบเบฒเบเบเปเบฒเบเบปเบเบเบฑเปเบเบฎเบฝเบเบชเบนเบเบชเบธเบเบเบตเปเปเบเบฑเบเปเบเปเบเปเปเบฅเบฐ vector เบญเบทเปเบเบเบตเปเบกเบตเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเบเบญเบเปเบซเบกเป
class เปเบเบฑเบ vectors เบชเบญเบเบฅเบฒเบเบเบฒเบ.
(เบเบทเปเบเบฐเปเบเบ defclass [super-class-1 super-class-2]
[[เบเบธเบเบเปเบฒเบเบธเบเบชเบปเบกเบเบฑเบ]])
เบเบฑเบเบชเบญเบเบเปเบฒเปเบฅเบฐเบเบฑเบเบเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบเบนเบเบกเบฑเบเบขเบนเปเปเบเบเบฑเปเบเบฎเบฝเบเปเบซเบกเปเบเบฑเปเบเบเบตเปเบชเบฐเปเบเบเปเบเบเบเบปเบงเบขเปเบฒเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป:
=> (defclass Cat []
... [[เบเปเปโเบกเบตโเบญเบฒโเบเบธโเบชเบนเบโเบชเบธเบโ]
... [เบชเบต "เบเบฒเบง"]
... [เปเบงเบปเปเบฒ (fn [เบเบปเบเปเบญเบ] (เบเบดเบก "Meow"))]])
=> (เบเบธเบเบเปเบญเบเบเบฑเบ (เปเบกเบง))
=> (setv spot.colour "Black")
'เบเบณ'
=> (เบเบธเบเปเบงเบปเปเบฒ)
Meow
defn / defun
defn เปเบฅเบฐ defun macro เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบฒเบเบปเบเบซเบเปเบฒเบเบตเป. เบเบงเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบเปเปเบงเบฅเบฒเบชเบฒเบกเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ: เปเบเป เบเบทเป
เบเบญเบเบเบฑเบเบเบฑเบเปเบเบทเปเบญเบเปเบฒเบเบปเบ, vector เบเบญเบ เบเบฒเบฅเบฒเบกเบดเปเบเบต, เปเบฅเบฐ เบฎเปเบฒเบเบเบฒเบ เบเบญเบโเบซเบเปเบฒโเบเบตเปโ:
(เบเบทเป defn [params] body)
เบเบฒเบฅเบฒเบกเบดเปเบเบตเบญเบฒเบเบกเบตเบเปเบฒเบชเปเบฒเบเบฑเบเบเปเปเปเบเบเบตเปเบขเบนเปเบเบฒเบเบซเบเปเบฒเบเบญเบเบเบงเบเปเบเบปเบฒ:
&เบเบฒเบเปเบฅเบทเบญเบ
เบเบฒเบฃเบฒเบกเบดเปเบเบตเปเบเบฑเบเบเบฒเบเปเบฅเบทเบญเบ. เบเบฒเบฅเบฒเบกเบดเปเบเบตเบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเปเบเบฑเบเบชเบญเบเบฅเบฒเบเบเบฒเบเบฅเบฒเบเบเบฒเบ, เบเปเบญเบเบเบตเป
เบญเบปเบเบเบฐเบเบญเบเบเปเบฒเบญเบดเบเปเบกเปเบเบเบทเปเบเบฒเบฅเบฒเบกเบดเปเบเบตเปเบฅเบฐเบเบตเบชเบญเบเปเบกเปเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ. เบเบฒเบฅเบฒเบกเบดเปเบเบต
เบเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบกเบญเบเปเบซเปเปเบเบฑเบเบฅเบฒเบเบเบฒเบเบเบฝเบง, เปเบเบเปเบฅเบฐเบเบตเบเบตเปเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบกเปเบ เบเปเปเบกเบต.
=> (defn total-value [value &optional [value-added-tax 10]]
... (+ (/ (* value-added-tax) 100) value))
=> (เบฅเบงเบกเบกเบนเบเบเปเบฒ 100)
110.0
=> (เบกเบนเบเบเปเบฒเบฅเบงเบก 100 1)
101.0
&เบเบฐเปเบ
&kwargs
เบเบฒเบฃเบฒเบกเบดเปเบเบตเบเบฐเบกเบต 0 เบซเบผเบทเบซเบผเบฒเบเบเบงเปเบฒเบเบฑเปเบ arguments.
เบเบปเบงเบขเปเบฒเบเบฅเบฐเบซเบฑเบเบเปเปเปเบเบเบตเปเบเปเบฒเบเบปเบเบซเบเปเบฒเบเบตเปเบเบตเปเบเบฐเบเบดเบกเบเปเบฒเบชเปเบฒเบเบฑเบเบเบฑเบเบซเบกเบปเบ
เบเบฒเบเปเบเปเบเบฝเบเปเบฅเบฐเบเบธเบเบเปเบฒเบเบญเบเบเบงเบเปเบเบปเบฒ.
=> (defn print-parameters [&kwargs kwargs]
... (เบชเปเบฒเบฅเบฑเบ [(, kv) (.items kwargs)] (เบเบดเบก kv)))
=> (เบเบณเปเบเป print-parameters [] {"parameter-1" 1"parameter-2" 2})
เบเบฒเบฃเบฒเบกเบดเปเบเบต-2 2
เบเบฒเบฃเบฒเบกเบดเปเบเบต-1 1
&เบเบฑเบเบเปเบญเบ เบเบฒเบฃเบฒเบกเบดเปเบเบตเบเบฐเบกเบต 0 เบซเบผเบทเบซเบผเบฒเบเบเบงเปเบฒเบเบฑเปเบ arguments. เบเปเปเบกเบตเบเปเบฒเปเบซเบเปเบเบญเบทเปเบ
arguments เบญเบฒเบเบเบฐเบเบทเบเบเปเบฒเบเบปเบเบซเบผเบฑเบเบเบฒเบเบญเบฑเบเบเบตเป.
เบเบปเบงเบขเปเบฒเบเบฅเบฐเบซเบฑเบเบเปเปเปเบเบเบตเปเบเปเบฒเบเบปเบเบเบฑเบเบเบฑเบเบเบตเปเบชเบฒเบกเบฒเบเปเบซเป 0 เบซเบฒ n เบเบปเบงเปเบฅเบ
เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ. เบเบฒเบเบเบฑเปเบเบกเบฑเบเบเบถเปเบเบฅเบงเบกเปเบญเบปเบฒเบเบธเบเบเบปเบงเปเบฅเบเบเบตเบ เปเบฅเบฐ เบฅเบปเบเบเบธเบเปเบเบปเบงเปเบฅเบเบเบนเป.
=> (defn zig-zag-sum [&เบเบปเบงเปเบฅเบเบชเปเบงเบเบเบตเปเปเบซเบผเบทเบญ]
(เปเบซเป [[ odd-numbers (list-comp x [x num] (odd? x))]
[เบเบปเบงเปเบฅเบเบเบนเป (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป-comp x [x เบเบปเบงเปเบฅเบ] (เปเบเบดเบ? x))]]
(- (เบฅเบงเบกเปเบฅเบเบเบตเบ) (เบฅเบงเบกเปเบฅเบเบเบนเป))))
=> (zig-zag-sum)
0
=> (zig-zag-sum 3 9 4)
8
=> ( zig-zag-sum 1 2 3 4 5 6 )
-3
defn-alias / defun-alias
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.0.
เปเบเป defn-alias เปเบฅเบฐ defun-alias macro เปเบกเปเบเบเปเบฒเบเบเบทเบซเบผเบฒเบ defn, เบกเบตเบเบงเบฒเบกเปเบเบเบเปเบฒเบเบเบตเป
เปเบเบเบเบตเปเบเบฐเบเปเบฒเบเบปเบเบซเบเปเบฒเบเบตเปเบเบตเปเบกเบตเบเบทเปเบเบฝเบง, เปเบซเบผเบปเปเบฒเบเบตเปเบเบฑเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบฒเบกเปเบเบ. เบญเบทเปเบเป
เบเปเบงเบฒเบเบฒเบเปเบญเบปเบฒเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบชเบฑเบเบเบฒเบฅเบฑเบเบชเปเบฒเบฅเบฑเบเบเบทเปเบซเบเปเบฒเบเบตเปเปเบเบฑเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเปเบฒเบญเบดเบ, defn-alias เปเบฅเบฐ
defun-alias เปเบกเปเบเบเปเปเปเบเบเบเปเบฒเบเบเบฒเบ defn เปเบฅเบฐ defun.
=> (defn-alias [เบเบฒเบกเปเบเบเบเบทเปเบซเบผเบฑเบ] []
... (เบเบดเบก "เบชเบฐเบเบฒเบเบเบต!"))
=> (เบเบทเปเบซเบผเบฑเบ)
"เบชเบฐเบเบฒเบเบเบต!"
=> (เบเบฒเบกเปเบเบ)
"เบชเบฐเบเบฒเบเบเบต!"
defmain
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.1.
เปเบเป defmain macro เบเปเบฒเบเบปเบเบซเบเปเบฒเบเบตเปเบเบปเปเบเบเปเบเบตเปเบเบทเบเปเบญเบตเปเบเบงเปเบฒเบเบฑเบเบเบตเบเปเบงเบ sys.argv as
arguments เบเปเบฒเปเบฅเบฐเบเบฝเบเปเบเปเบเปเบฒเปเบเบฅเปเบเบตเปเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเบฑเบ script. เปเบเบเปเบฒเบชเบฑเบเบเปเบฒเบเปเบญเบทเปเบเป, เบเบตเป:
(defmain [&rest args]
(เปเบฎเบฑเบ-เบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบ-เบเปเบงเบเบเบฒเบเปเบเปเบเบฝเบ))
เปเบเบปเปเบฒเบเบฑเบ:
def main(*args):
do_something_with(args)
เบเบฑเบเบเบทเบ 0
เบเปเบฒ __name__ == "__main__":
sys เบเบณ เปเบเบปเปเบฒ
retval = main(*sys.arg)
เบเปเบฒ isinstance(retval, int):
sys.exit(retval)
เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเบเบฒเบกเบเบตเปเปเบเบปเปเบฒเปเบซเบฑเบเบเปเบฒเบเปเบเบดเบ, เบเปเบฒเบเปเบฒเบเบชเบปเปเบเบเบทเบเบเปเบฒเบเบงเบเปเบเบฑเบกเบเบฒเบเบเบฑเบเบเบฑเบเบเบตเป, เบเบตเปเบเบฐเปเบเบฑเบ
เปเบเปเปเบเบฑเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบญเบญเบเบชเปเบฒเบฅเบฑเบเบชเบฐเบเบดเบเบเบญเบเบเปเบฒเบ. (Python เปเบฅเบตเปเบกเบเบปเปเบเบเบตเปเบเบฐเบญเบญเบเบเบฒเบเบชเบฐเบเบฒเบเบฐ 0 เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบ,
เบเบถเปเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเบธเบเบขเปเบฒเบเบเปเปเปเบเบฑเบเบซเบเบฑเบ!)
(เบเบฑเบเบเบฑเปเบเปเบเป (sys.exit 0) เบเปเปเปเบเปเบเปเบฒเปเบเบตเบเบเบฒเบเบขเปเบฒเบเบเบฑเบเปเบเบเปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบปเบเบเบญเบเปเบเบเบเบตเปเบเปเปเปเบกเปเบเบเปเบฒเบเบงเบเปเบเบฑเบกเบเบฒเบ
defmain, เบกเบฑเบเปเบเบฑเบเบเบงเบฒเบกเบเบดเบเบเบตเปเบเบตเบเบตเปเบเบฐเปเบชเป ( defmain ) เปเบเบฑเบเบฅเบฐเบซเบฑเบเบชเบธเบเบเปเบฒเบเปเบเปเบเบฅเปเบเบญเบเบเปเบฒเบ.)
defmacro
defmacro เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบฒเบเบปเบ macro. เบฎเบนเบเปเบเบเบเบปเปเบงเปเบเปเบกเปเบ (defmacro เบเบทเป [เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ]
expr).
เบเบปเบงเบขเปเบฒเบเบเปเปเปเบเบเบตเปเบเปเบฒเบเบปเบเบกเบฐเบซเบฒเบเบฒเบเบเบตเปเบชเบฒเบกเบฒเบเปเบเปเปเบเบทเปเบญเปเบฅเบเบเปเบฝเบเบเปเบฒเบชเบฑเปเบเบเบญเบเบญเบปเบเบเบฐเบเบญเบเปเบเบฅเบฐเบซเบฑเบ,
เปเบซเปเบเบนเปเปเบเปเบเบฝเบเบฅเบฐเบซเบฑเบเปเบ infix notation, เบเปเบญเบเบเบตเป operator เปเบกเปเบเบขเบนเปเปเบเบฅเบฐเบซเบงเปเบฒเบ
เปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบ.
=> (defmacro infix [เบฅเบฐเบซเบฑเบ]
... (เบญเปเบฒเบเบชเบดเบ (
... (unquote (เบฎเบฑเบเบฅเบฐเบซเบฑเบ 1))
... (unquote (เบฎเบฑเบเบฅเบฐเบซเบฑเบ 0))
... (unquote (เบฎเบฑเบเบฅเบฐเบซเบฑเบ 2)))))
=> (infix (1 + 1))
2
defmacro-alias
defmacro-alias เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบฒเบเบปเบ macro เบเบตเปเบกเบตเบเบทเปเบซเบผเบฒเบ (aliases). เบฎเบนเบเปเบเบเบเบปเปเบงเปเบ
is (defmacro-alias [เบเบทเป] [เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ] expr). เบกเบฑเบเบชเปเบฒเบ macro เบซเบผเบฒเบเบญเบฑเบเบเบฝเบงเบเบฑเบ
เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบฒเบฅเบฒเบกเบดเปเบเบตเปเบฅเบฐเปเบเบทเปเบญเปเบ, เบเบฒเบเปเบเปเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบตเปเบเปเบฒเบเบปเบเปเบงเปเบเบญเบเบเบทเป.
เบเบปเบงเบขเปเบฒเบเบเปเปเปเบเบเบตเปเบเปเบฒเบเบปเบเบชเบญเบ macro, เบเบฑเบเบชเบญเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบนเปเปเบเปเบเบฝเบเบฅเบฐเบซเบฑเบเปเบ
infix notation.
=> (defmacro-alias [infix infi] [เบฅเบฐเบซเบฑเบ]
... (เบญเปเบฒเบเบชเบดเบ (
... (unquote (เบฎเบฑเบเบฅเบฐเบซเบฑเบ 1))
... (unquote (เบฎเบฑเบเบฅเบฐเบซเบฑเบ 0))
... (unquote (เบฎเบฑเบเบฅเบฐเบซเบฑเบ 2)))))
=> (infix (1 + 1))
2
=> (infi (1 + 1))
2
defmacro/g!
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.9.12.
defmacro/g! เปเบเบฑเบโเบชเบฐโเบเบฑเบโเบเบดโเปเบชเบโเบเบญเบโ defmacro เบเบตเปเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบชเปเบฒเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ gensym
เบชเปเบฒเบฅเบฑเบเบชเบฑเบเบเบฒเบฅเบฑเบเปเบเปเบเบตเปเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบ g!.
เบเบปเบโเบเบปเบงโเบขเปเบฒเบ, g!a เบเบฐเบเบฒเบเปเบเบฑเบ (gensym "เบ").
เปเบเบดเปเบ เบเบฑเบ:
เบเบฒเบโเบชเปเบงเบโเบเบฒเบโเบเปเบฒโเปเบเป -gensymโ
เบเบนเปโเบฅเบฐโเปเบกเบตเบ
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.9.12.
เบเบนเปโเบฅเบฐโเปเบกเบตเบ เบเปเบฒเบเบปเบเบกเบฐเบซเบฒเบเบฒเบเบเบญเบเบเบนเปเบญเปเบฒเบ, เบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฑเบเปเบเบเบชเปเบฒเบเบซเบผเบทเบเบฑเบเปเบเบ syntax.
=> (defreader ^ [expr] (เบเบดเบก expr))
=> #^(1 2 3 4)
( 1 2 3 4 )
=> #^ "เบชเบฐเบเบฒเบเบเบต"
"เบชเบฐเบเบฒเบเบเบต"
เปเบเบดเปเบ เบเบฑเบ:
เปเบงเบ Reader Macros
เปเบเป
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.9.12.
เปเบเป เปเบญเบปเบฒเบงเบฑเบเบเบธเบญเบญเบเบเบฒเบ namespace เปเบเบเบฑเบเบเบธเบเบฑเบ.
=> (setv foo 42)
=> (del foo)
=> เบเบน
Traceback (เบเบฒเบเปเบเบซเบผเปเบฒเบชเบธเบเบชเบธเบเบเปเบฒเบ):
เปเบเบฅเป " ", เปเบเบง 1, เปเบ
NameError: เบเบทเป 'foo' เบเปเปเปเบเปเบเบทเบเบเปเบฒเบเบปเบ
เปเบเป เบเบฑเบเบชเบฒเบกเบฒเบเปเบญเบปเบฒเบงเบฑเบเบเบธเบญเบญเบเบเบฒเบเปเบเบเบเบตเป, เบฅเบฒเบเบเบทเป, เปเบฅเบฐเบญเบทเปเบเปเบญเบตเบ.
=> (เบเบฒเบเบเบปเบเบชเบญเบ setv (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (เปเบฅเบเบฐ 10)))
=> เบเบฒเบเบเบปเบเบชเบญเบ
[0, 1, 2, 3, 4, 5, 6, 7, 8]
=> (del (slice test 2 4));; เปเบญเบปเบฒเบฅเบฒเบเบเบฒเบเบเบฒเบ 2 เบซเบฒ 4 เบเบปเบเปเบงเบฑเปเบ
=> เบเบฒเบเบเบปเบเบชเบญเบ
[0, 1, 4, 5, 6, 7, 8, 9]
=> (setv dic {"foo" "bar"})
=> เบเบดเบ
{"foo": "bar"}
=> (del (เปเบเป dic "foo"))
=> เบเบดเบ
{}
เปเบเปเบ
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.1.
เปเบเปเบ เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบฒเบเบฅเปเบฒเบเบฑเบเบเบญเบเบงเบดเบเบตเบเบฒเบเปเบเบซเบฒเบงเบฑเบเบเบธ.
=> (doto [] (.append 1) (.append 2).reverse)
[2 1]
=> (เบเบธเบเบชเบฐเบชเบปเบก [])
=> (.เบเบทเปเบกเบเบฒเบเปเบเบฑเบเบฅเบงเบเบฅเบงเบก 1)
=> (.เบเบทเปเบกเบเบฒเบเปเบเบฑเบเบฅเบงเบเบฅเบงเบก 2)
=> (.เบเบฒเบเปเบเบฑเบเบฅเบงเบเบฅเบงเบกเบเบทเบ)
=> เบเบฒเบเปเบเบฑเบเบเปเบฒ
[2 1]
เบเบฒเบเบเบฐเปเบกเบตเบ
เบเบฒเบเบเบฐเปเบกเบตเบ เบเบฐเปเบกเบตเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบตเปเบญเปเบฒเบเบญเบตเบเปเบฅเบฐเบชเบปเปเบเบเบทเบเบเปเบฒ.
=> (eval '(เบเบดเบก "เบชเบฐเบเบฒเบเบเบตเปเบฅเบ"))
"เบชเบฐโเบเบฒเบโเบเบตโเบเบฒเบงโเปเบฅเบ"
eval-and-compile
eval-when-compile
เบเบฑเปเบเบเปเบฒเบญเบดเบ / เบฅเบปเบ
เบเบฑเปเบเบเปเบฒเบญเบดเบ เปเบฅเบฐ เบฅเบปเบ เปเบกเปเบ macro เบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบญเบปเบเบเบฐเบเบญเบเบเปเบฒเบญเบดเบเบเบญเบเบเปเปเบฅเบฑเบเบเบฑเบ:
=> (เบญเบฑเบเบเปเบฒเบญเบดเบ (เปเบฅเบเบฐ 10))
0
เบชเปเบฒเบฅเบฑเบเบเบฒเบ
เบชเปเบฒเบฅเบฑเบเบเบฒเบ เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเปเบเบซเบฒเบซเบเปเบฒเบเบตเปเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบญเบปเบเบเบฐเบเบญเบเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบซเบผเบท vector. เบเบปเบเปเบเปเบฎเบฑเบเบเบญเบเปเบเปเบฅเบฐเบเบปเบ
เปเบเบเบทเบเบเบปเบเปเบฅเบตเบเปเบฅเบฐ เบชเปเบฒเบฅเบฑเบเบเบฒเบ เบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบฑเบเบเบทเบเบกเบฒ เบเปเปเบกเบต เปเบเบ. เบฅเบฐเบซเบฑเบเบเบปเบงเบขเปเบฒเบเปเบฎเบฑเบเบเปเบณ
เปเบเปเบฅเบเบฐ เปเบเบฑเบโเบเปเบฒโเบเปเปโเบกเบนเบ เปเบฅเบฐเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเบปเบ element in เปเบเบฑเบโเบเปเบฒโเบเปเปโเบกเบนเบ เบฎเบฝเบเบฎเปเบญเบ เบเบปเบโเบเปเบฒเบโเบเบฝเบ เบเบฒเบเบเปเบฒเบเบฒเบเบเบฑเบ
element เปเบเบฑเบโเบเบฒเบโเปเบเปโเบเบฝเบโเบเบญเบโเบเบปเบโ:
;; เบชเบปเบกเบกเบธเบเบงเปเบฒ (เบเบปเบเบเบฐเบเบปเบเบเปเบฒเบเบเบฝเบ) เปเบกเปเบเบซเบเปเบฒเบเบตเปเปเบเปเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบฝเบง
(เบชเปเบฒเบฅเบฑเบ [เบเบฒเบเบฅเบงเบเบฅเบงเบกเบญเบปเบเบเบฐเบเบญเบ] (เบญเบปเบเบเบฐเบเบญเบเบเปเบฒเบเบเบฝเบ))
;; เบชเปเบฒเบฅเบฑเบเบชเบฒเบกเบฒเบเบกเบตเบเบฑเบเบเบฒเบเปเบฅเบทเบญเบเบญเบทเปเบ
(เบชเปเบฒเบฅเบฑเบ [เบเบฒเบเบฅเบงเบเบฅเบงเบกเบญเบปเบเบเบฐเบเบญเบ] (เบญเบปเบเบเบฐเบเบญเบเบเปเบฒเบเบเบฝเบ)
(เบญเบทเปเบเป (เบเบปเบเบเปเบฒเบเบเบฝเบ-2)))
เบเบฒเบเปเบฅเบทเบญเบ เบญเบทเปเบ block เปเบกเปเบเบเบฐเบเบดเบเบฑเบเบเบฝเบเปเบเปเบเปเบฒเบซเบฒเบเบงเปเบฒ เบชเปเบฒเบฅเบฑเบเบเบฒเบ loop เบชเบดเปเบเบชเบธเบเบฅเบปเบเบเบฒเบกเบเบปเบเบเบฐเบเบด. เบเปเบฒ
เบเบฒเบโเบเบฐโเบเบดโเบเบฑเบโเปเบกเปเบโเบขเบธเบโเปเบเบปเบฒโเบเบฒเบโ เบเบฑเบเบเปเบญเบ, เบเบฒเบ เบญเบทเปเบ block เบเปเปเบเบฐเบเบดเบเบฑเบ.
=> (เบชเปเบฒเบฅเบฑเบ [เบญเบปเบเบเบฐเบเบญเบ [1 2 3]] (เบเปเบฒ (<เบญเบปเบเบเบฐเบเบญเบ 3)
... (เบญเบปเบเบเบฐเบเบญเบเบเบดเบก)
... (เปเบเบ))
... (เบญเบทเปเบ (เบเบดเบก "เบงเบปเบเบชเปเบฒเปเบฅเบฑเบเบฎเบนเบ")))
1
2
=> (เบชเปเบฒเบฅเบฑเบ [เบญเบปเบเบเบฐเบเบญเบ [1 2 3]] (เบเปเบฒ (<เบญเบปเบเบเบฐเบเบญเบ 4)
... (เบญเบปเบเบเบฐเบเบญเบเบเบดเบก)
... (เปเบเบ))
... (เบญเบทเปเบ (เบเบดเบก "เบงเบปเบเบชเปเบฒเปเบฅเบฑเบเบฎเบนเบ")))
1
2
3
loop เบชเปเบฒเปเบฅเบฑเบ
genexpr
genexpr เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบชเปเบฒเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบญเบเปเบเบทเปเบญเบเบเปเบฒเปเบเบตเบ. เบกเบฑเบเปเบเปเปเบงเบฅเบฒเบชเบญเบเบซเบผเบทเบชเบฒเบกเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ. เปเบเป
เบเบฒเบฅเบฒเบกเบดเปเบเบตเบเปเบฒเบญเบดเบเปเบกเปเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบตเปเบเบงเบเบเบธเบกเบกเบนเบเบเปเบฒเบเบฑเบเบเบทเบ, เปเบเบเบฐเบเบฐเบเบตเปเบเบปเบงเบเบตเบชเบญเบเบเบทเบเบเปเบฒเปเบเป
เปเบเบทเปเบญเปเบฅเบทเบญเบเบฅเบฒเบเบเบฒเบเบเบฒเบเบฅเบฒเบเบเบทเป. เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบตเบชเบฒเบกเปเบฅเบฐเบเบฒเบเปเบฅเบทเบญเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบฒเบเบเบฑเปเบเบเบญเบเบญเบญเบ
เบเบฒเบเบฅเบฒเบเบเบฒเบเบขเบนเปเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเปเบเบเบญเบตเบเปเบชเปเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบตเปเบกเบตเปเบเบทเปเบญเบเปเบ. genexpr เปเบกเปเบเบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบ
list-comp, เบเบปเบโเปเบงเบฑเปเบโเปเบเปโเบกเบฑเบโเบเบฐโเบเบฑเบโเบเบทเบโเปเบเบฑเบ iterable เบเบตเปโเบเบฐโเปเบกเบตเบโเบเปเบฒโเบซเบเบถเปเบโเปเบเบโเบซเบเบถเปเบโเปเบเบโเบเบตเปโเบเบฐโเปเบเบฑเบ
เบเบฒเบโเบเบฐโเปเบกเบตเบโเบเบปเบโเปเบซเปโเปเบเบปเบฒโเปเบเบปเปเบฒโเบเบฑเบโเบเบตโเบเบฑเบโเปเบโ.
=> (เบเบฒเบเปเบเบฑเบเบเปเบฒ def (เบเปเบงเบ 10))
=> (def filtered (genexpr x [x collection] (เปเบกเปเปเบเป? x)))
=> (เบฅเบฒเบเบเบทเปเบเบทเบเบเบฑเปเบเบเบญเบ)
[0, 2, 4, 6, 8]
gensym
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.9.12.
gensym เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบชเปเบฒเบเบชเบฑเบเบเบฒเบฅเบฑเบเบเบตเปเปเบเบฑเบเปเบญเบเบฐเบฅเบฑเบเบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเป macros เบชเบฒเบกเบฒเบเบเบฝเบเปเบเปเปเบเบเบเปเปเบกเบตเบเบฒเบ
เบเบฒเบเบเบฐเบเบฐเบเบฑเบเบเบญเบเบเบทเปเบเบปเบงเปเบเปเบเบเบเบฑเบเปเบญเบตเบ.
=> (gensym)
u':G_1235'
=> (gensym "x")
u':x_1236'
เปเบเบดเปเบ เบเบฑเบ:
เบเบฒเบโเบชเปเบงเบโเบเบฒเบโเบเปเบฒโเปเบเป -gensymโ
เปเบเปเบฎเบฑเบ
เปเบเปเบฎเบฑเบ เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเปเบเบปเปเบฒเปเบเบดเบเบญเบปเบเบเบฐเบเบญเบเบเบฝเบงเปเบเบฅเบฒเบเบเบทเปเปเบฅเบฐเบงเบฑเบเบเบฐเบเบฒเบเบธเบเบปเบก. เปเบเปเบฎเบฑเบ เปเบเปเปเบงเบฅเบฒเบชเบญเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ:
เปเบเป เบเปเปเบกเบนเบ เปเบเบเบเบฐเบเบญเบเบเบฒเบ เปเบฅเบฐ เบเบฑเบเบเบฐเบเบต or เบเบตเปเบชเปเบฒเบเบฑเบ เบเบญเบเบฅเบฒเบเบเบฒเบ. เบเบฒเบเบเบฑเปเบเบกเบฑเบเบเบฐเบชเบปเปเบเบเบทเบเบเปเปเบกเบนเบเบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบ
เบเปเบฒเบเบฒเบเบงเบฑเบเบเบฐเบเบฒเบเบธเบเบปเบก เบซเบผเบทเบฅเบฒเบเบเบฒเบ. เบเบปเบงเบขเปเบฒเบเบเบฒเบเบเปเบฒเปเบเป:
=> (เปเบซเป [[เบชเบฑเบ {"เปเบฒ" "เปเบเบทเบญเบ" "เปเบกเบง" "เปเบกเบง"}]
... [เบเบปเบงเปเบฅเบ ["เบชเบนเบ" "เบซเบเบถเปเบ" "เบชเบญเบ" "เบชเบฒเบก"]]]
... (เบเบดเบก (เปเบญเบปเบฒเบชเบฑเบ "เปเบฒ"))
... (เบเบดเบก (เปเบเปเบเบปเบงเปเบฅเบ 2)))
เปเบเบทเบญเบ
เบชเบญเบ
เบซเบกเบฒเบโเปเบซเบโ:
เปเบเปเบฎเบฑเบ เปเบเบตเปเบก KeyError เบเปเบฒเบงเบฑเบเบเบฐเบเบฒเบเบธเบเบปเบกเบเบทเบเบชเบญเบเบเบฒเบกเบชเปเบฒเบฅเบฑเบเบฅเบฐเบซเบฑเบเบเบตเปเบเปเปเบกเบตเบขเบนเปเปเบฅเปเบง.
เบซเบกเบฒเบโเปเบซเบโ:
เปเบเปเบฎเบฑเบ เบเบปเบ IndexError เบเปเบฒเบฅเบฒเบเบเบทเปเบซเบผเบท tuple เบเบทเบเบชเบญเบเบเบฒเบกเบชเปเบฒเบฅเบฑเบเบเบฑเบเบชเบฐเบเบตเบเบตเปเบขเบนเปเบเบญเบ
เปเบเบเปเบเบ.
เบเบปเปเบงเปเบฅเบ
เบเบปเปเบงเปเบฅเบ เบชเบฒเบกเบฒเบเปเบเปเปเบเบทเปเบญเปเบฒเบเบชเบฑเบเบเบฒเบฅเบฑเบเปเบเบฑเบเบเบปเปเบงเปเบฅเบ. เบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบฑเบเบเบฝเบเปเบเบฅเปเบเบฅเบกเบเปเบฒเบเบปเบ a
เบกเบนเบเบเปเบฒเปเบเบฑเบเบชเบฑเบเบเบฒเบฅเบฑเบเบเบปเปเบงเปเบฅเบ. เบเบฒเบเบญเปเบฒเบเบชเบฑเบเบเบฒเบฅเบฑเบเบเบปเปเบงเปเบฅเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบกเบต เบเบปเปเบงเปเบฅเบ เบเปเบฒเบชเปเบฒเบเบฑเบ --
เบเบฝเบเปเบเปเบกเบญเบเบซเบกเบฒเบเปเบซเปเบกเบฑเบเปเบฎเบฑเบ.
เบเบปเบงเบขเปเบฒเบเบเปเปเปเบเบเบตเปเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเบดเบเบตเบเบฒเบเบชเบฑเบเบเบฒเบฅเบฑเบเบเบปเปเบงเปเบฅเบ a เบเบทเบเบกเบญเบเบซเบกเบฒเบเบเปเบฒเปเบเบซเบเปเบฒเบเบตเปเปเบฅเบฐ
เบเปเปเบกเบฒเปเบกเปเบเบเบดเบกเบญเบญเบเปเบเบเบฑเบเบเบฑเบเบญเบทเปเบ. เปเบเบเบเปเปเบกเบตเบเบฒเบ เบเบปเปเบงเปเบฅเบ เบเปเบฒเบชเปเบฒเบเบฑเบ, เบซเบเปเบฒเบเบตเปเบเบตเบชเบญเบ
เบเบฐเบเบดเปเบกเปเบเบฑเบ เบเบทเปเบเบดเบเบเบฒเบ.
(defn set-a [เบเปเบฒ]
(เบเบปเปเบงเปเบฅเบ a)
(เบเบฑเปเบเบเปเบฒ))
(defn print-a []
(เบเบดเบก a))
(เบเบธเบ 5)
(เบเบดเบก-a)
if / เบเปเบฒโเบเปเป
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.0: เบเปเบฒเบเปเปเปเบกเปเบ
if เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเปเบฅเบทเบญเบเบฅเบฐเบซเบฑเบเปเบเบทเปเบญเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฒเบกเปเบเบทเปเบญเบเปเบ. เบกเบฑเบเบเปเบญเบเบกเบตเปเบเบทเปเบญเบเปเบ
block เปเบฅเบฐเบเบฑเบเบเบตเปเบเบฐเบเบฐเบเบดเบเบฑเบเบเปเบฒเบซเบฒเบเบงเปเบฒเบเบฑเบเปเบเบทเปเบญเบเปเบเบเบฐเปเบกเบตเบเปเบเบดเบ เบเบตเปเปเบเปเบเบดเบ. เบเบฒเบเปเบฅเบทเบญเบ,
เบกเบฑเบเบญเบฒเบเบเบฐเบเบฐเบเบญเบเบเปเบงเบเบเบฑเบเบชเบธเบเบเปเบฒเบเบเบตเปเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเบเปเบฅเบฐเบเบตเบเบตเปเบเบฒเบเบเบฐเปเบกเบตเบเปเบเบทเปเบญเบเปเบเปเบกเปเบ
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ.
เบเปเบฒโเบเปเป เปเบกเปเบเบเปเบฒเบเบเบทเบเบฑเบ, เปเบเปเบเบฑเบเบเบตเบชเบญเบเบเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบกเบทเปเบญเปเบเบทเปเบญเบเปเบเบฅเบปเปเบกเปเบซเบฅเบงเปเบเบเบฐเบเบฐเบเบตเป
เบเบฑเบเบเบตเบชเบฒเบกเปเบฅเบฐเบชเบธเบเบเปเบฒเบเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบกเบทเปเบญเบเบฒเบเบเบปเบเบชเบญเบเบเบฐเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบ - เบเปเบฒเบชเบฑเปเบเบเบปเบเบเบฑเบเบเปเบฒเบกเบเบญเบ if.
เบเบปเบงเบขเปเบฒเบเบเบฒเบ เบเบณ เปเบเป:
(เบเปเบฒโเบซเบฒเบโเบงเปเบฒ (เปเบเบดเบโเปเบซเบผเบทเบญโ? เบเบฑเบโเบเบตโ)
(เบเบดเบก "เปเบเบเบทเปเปเบเบทเปเบญเบ")
(เบเบดเบก "เปเบเปเบฎเบฑเบเบงเบฝเบ"))
(เบเปเบฒเบเปเปเปเบกเปเบ (เปเบเบดเบ-เบเปเบฒเบ? เบเบฑเบเบเบต)
(เบเบดเบก "เปเบเปเบฎเบฑเบเบงเบฝเบ")
(เบเบดเบก "เปเบเบเบทเปเปเบเบทเปเบญเบ"))
เบเบงเบฒเบกเบเบดเบเบเบญเบ Python เปเบกเปเบเปเบเบปเบฒเบฅเบปเบ. เบเปเปเบกเบต, เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ, เบชเบนเบเบเบญเบเบเบฐเปเบเบเบเบปเบงเปเบฅเบ, เบฅเปเบฒเบเบฑเบเบซเบงเปเบฒเบเปเบเบปเปเบฒ,
เปเบฅเบฐเบงเบฑเบเบเบฐเบเบฒเบเบธเบเบปเบกเปเบเบปเปเบฒเปเบกเปเบเบเบดเบเบฒเบฅเบฐเบเบฒ เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ; เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบญเบทเปเบเปเบกเปเบเบเบดเบเบฒเบฅเบฐเบเบฒ เบเบตเปเปเบเปเบเบดเบ.
lisp-เบเปเบฒ / เบเบตเบงเบดเบ เปเบฅเบฐ lisp-เบเปเบฒ-เบเปเป / lif-not
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.0.
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.2: lissp-if-not / lif-not
เบชเปเบฒเบฅเบฑเบเบเบนเปเบเบตเปเบกเบฑเบ Lispy เบซเบผเบฒเบ if เบเปเป, เบเบงเบเปเบฎเบปเบฒเบกเบต lisp-เบเปเบฒ, เบซเบผเบท เบเบตเบงเบดเบ. เบเบตเป เบเบฝเบเปเบเป เบเบดเบเบฒเบฅเบฐเบเบฒ
เบเปเปเบกเบต / nil เบเบดเบ! เบเปเบฒ Python "false-ish" เบญเบทเปเบเปเบเบฑเบเปเบปเบเปเบกเปเบเบเบทเบงเปเบฒเปเบเบฑเบเบเบงเบฒเบกเบเบดเบ.
เบเบปเบเบเบฑเบเบเปเบฒเบก, เบเบงเบเปเบฎเบปเบฒเบกเบต lisp-เบเปเบฒ-เบเปเป เปเบฅเบฐ lif-not เปเบเบเบฐเบซเบเบฒเบเบเบฑเบ if เปเบฅเบฐ เบเปเบฒโเบเปเป เปเบเบดเปเบเบเบตเปเบเบเบฑเบเบเบฑเบ
เบเบฒเบเบเบฝเบเบเบฝเบ.
=> (lisp-เบเปเบฒ "เบเบดเบ" "เบเบดเบ")
"เบเบงเบฒเบกเบเบดเบ"
=> (lisp-if false "true" "false")
"เบเบงเบฒเบกเบเบดเบ"
=> (lisp-if 0 "เบเบดเบ" "เบเบดเบ")
"เบเบงเบฒเบกเบเบดเบ"
=> (lisp-if nil "เบเบดเบ" "false")
"เบเปเปเบเบทเบเบเปเบญเบ"
=> (lisp-เบเปเบฒเบเปเปเบกเบต "เบเบดเบ" "เบเบดเบ")
"เบเปเปเบเบทเบเบเปเบญเบ"
=> (lisp-if-not nil "เบเบดเบ" "false")
"เบเบงเบฒเบกเบเบดเบ"
=> (lisp-if-not เบเปเปเบกเบต "เบเบดเบ" "false")
"เบเบงเบฒเบกเบเบดเบ"
=> (lisp-if-not False "true" "false")
"เบเปเปเบเบทเบเบเปเบญเบ"
; เบเบฝเบเปเบเบปเปเบฒเปเบเปเบชเบฑเปเบเบเบงเปเบฒ
=> (เบเปเบฒ "เบเบดเบ" "เบเบดเบ")
"เบเบงเบฒเบกเบเบดเบ"
=> ( lif nil "เบเบดเบ" "เบเบดเบ")
"เบเปเปเบเบทเบเบเปเบญเบ"
=> (lif-not none "เบเบดเบ" "false")
"เบเบงเบฒเบกเบเบดเบ"
เบเบฒเบเบเปเบฒเปเบเบปเปเบฒ
เบเบฒเบเบเปเบฒเปเบเบปเปเบฒ เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบฒเปเบเบปเปเบฒเปเบกเบเบนเบ, เปเบเบฑเปเบเปเบ Python. เบกเบตเบซเบผเบฒเบเบงเบดเบเบต เบเบฒเบเบเปเบฒเปเบเบปเปเบฒ เบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเป
เบเบทเบเบเปเบฒเปเบเป.
;; เบเปเบฒเปเบเบปเปเบฒเปเบเปเบฅเบฐเปเบกเบเบนเบเปเบซเบผเบปเปเบฒเบเบตเป
;;
;; Python:
;; sys เบเปเบฒเปเบเบปเปเบฒ
;; เบเปเบฒเปเบเบปเปเบฒ os.path
(เบเปเบฒเปเบเบปเปเบฒ sys os.path)
;; เบเปเบฒเปเบเบปเปเบฒเบเบฒเบเปเบกเบเบนเบ
;;
;; Python: เบเบฒเบเบเบฒเบเบเปเบฒเปเบเบปเปเบฒ os.path เบกเบตเบขเบนเป, isdir, isfile
(เบเปเบฒเปเบเบปเปเบฒ [os.path [เบกเบต isdir isfile]])
;; เบเบณเปเบเบปเปเบฒเบเปเบงเบเบเบฒเบกเปเบเบ
;;
;; Python: เบเปเบฒเปเบเบปเปเบฒ sys เปเบเบฑเบ systest
(เบเปเบฒเปเบเบปเปเบฒ [sys : as systest])
;; เบเปเบฒเบโเบชเบฒโเบกเบฒเบโเบฅเบฒเบโเบเบทเปโเบเบฒเบโเบเปเบฒโเปเบเบปเปเบฒโเบซเบผเบฒเบโเปเบเบปเปเบฒโเบเบตเปโเบเปเบฒเบโเบเปเบญเบโเบเบฒเบโเบเบญเบโเบเบฐโเปเบเบโเบเบตเปโเปเบเบโเบเปเบฒเบโเบเบฑเบโ.
(เบเปเบฒเปเบเบปเปเบฒ [tests.resources [kwtest function-with-a-dash]]
[os.path [เบกเบต isdir isfile]]
[sys : เปเบเบฑเบโเบฅเบฐโเบเบปเบโ])
;; เบเปเบฒเปเบเบปเปเบฒเบเบฑเบเบเบฑเบเปเบกเบเบนเบเบเบฑเบเบซเบกเบปเบเปเบเบปเปเบฒเปเบเปเบ namespace เปเบเบเบฑเบเบเบธเบเบฑเบ
(เบเปเบฒเปเบเบปเปเบฒ [sys [*]])
lambda / fn
lambda เปเบฅเบฐ fn เบชเบฒเบกเบฒเบเปเบเปเปเบเบทเปเบญเบเปเบฒเบเบปเบเบเบฑเบเบเบฑเบเบเบตเปเบเปเปเปเบเบตเบเปเบเบตเบเบเบทเป. เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเปเบกเปเบเบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบ
defn: เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเปเบฒเบญเบดเบเปเบกเปเบ vector เบเบญเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเปเบฅเบฐเบชเปเบงเบเบเบตเปเปเบซเบผเบทเบญเปเบกเปเบเบฎเปเบฒเบเบเบฒเบเบเบญเบ
function lambda เบชเบปเปเบเบเบทเบเบเบฑเบเบเบฑเบเปเปเป. เปเบเบเบปเบงเบขเปเบฒเบเบเปเปเปเบเบเบตเป, เบเบฑเบเบเบฑเบเบเบตเปเบเปเปเปเบเบตเบเปเบเบตเบเบเบทเป
เบเบทเบเบเปเบฒเบเบปเบเปเบฅเบฐเบเบทเบเบชเบปเปเบเปเบเบซเบฒเบซเบเปเบฒเบญเบทเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเปเบเบเบญเบเบเบปเบเบเบฐเบฅเบดเบ.
=> (เบเบปเบเบเปเบญเบเบเบฑเบ [{:เบเบทเป "Alice": เบญเบฒเบเบธ 20}
... {:เบเบทเป "เบเบฑเบญเบ" :เบญเบฒเบเบธ 25}
... {:เบเบทเป "Charlie" : เบญเบฒเบเบธ 50}
... {:เบเบทเป "เปเบเบ":เบญเบฒเบเบธ 5}])
=> (defn display-people [เบเบปเบงเบเบญเบเบเบปเบ]
... (เบชเปเบฒเบฅเบฑเบ [เบเบปเบ] (เบเปเบฒ (เบเบปเบเบเบฒเบเบเบฑเปเบเบเบญเบ) (เบเบดเบก (: เบเบทเปเบเบปเบ)))))
=> (เบเบปเบเบชเบฐเปเบเบ - เบเบปเบ (fn [เบเบปเบ] (< (: เบเบธเบเบเบปเบเบญเบฒเบเบธ) 25)))
Alice
Dave
เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเปเบฒเบเบดเบเบฒเบกเบเบญเบเบซเบเปเบฒเบเบตเปเบเบปเบเบเบฐเบเบด, เบเปเบฒเบญเบปเบเบเบฐเบเบญเบเบเปเบฒเบญเบดเบเบเบญเบเบฎเปเบฒเบเบเบฒเบเปเบกเปเบเบชเบฒเบ, เบกเบฑเบ
เปเบฎเบฑเบเบซเบเปเบฒเบเบตเปเปเบเบฑเบ docstring. เบเบตเปเปเบกเปเบเปเบเบฑเบเบเบฐเปเบซเบเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบซเป docstrings เบงเบดเบเบตเบเบฒเบเบซเปเบญเบเบฎเบฝเบ.
=> (setv เปเบงเบฅเบฒเบชเบฒเบก
... (fn [x]
... "เบเบนเบเบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบเบเปเบงเบเบชเบฒเบก เปเบฅเบฐเบชเบปเปเบเบเบปเบเปเบเปเบฎเบฑเบ."
... (* x 3)))
เบเบตเปเบชเบฒเบกเบฒเบเบขเบทเบเบขเบฑเบเปเบเปเปเบเบเบเปเบฒเบเบเบปเบงเบชเปเบฒเบเบเบญเบ Python เบเปเบงเบเปเบซเบผเบทเบญ เบเบฒเบเบเปเบฒเบเบฒเบเบเบญเบ:
=> (เบเปเบงเบเบเบฑเปเบเบชเบฒเบก)
เบเปเบงเบโเปเบซเบผเบทเบญโเบเปเบฝเบงโเบเบฑเบโเบเบฒเบโเบเปเบฒโเบเบฒเบ times_threeโ:
times_three(x)
เบเบนเบเบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบเบเปเบงเบเบชเบฒเบก เปเบฅเบฐเปเบซเปเบเบปเบเปเบเปเบฎเบฑเบ
(END)
เบชเบธเบเบเปเบฒเบ
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.2.
เบชเบธเบเบเปเบฒเบ เบชเบฒเบกเบฒเบเปเบเปเปเบเบทเปเบญเปเบเบปเปเบฒเปเบเบดเบเบญเบปเบเบเบฐเบเบญเบเบชเบธเบเบเปเบฒเบเบเบญเบเบเปเปเบฅเบฑเบเบเบฑเบ:
=> (เบซเบผเปเบฒเบชเบธเบ [2 4 6])
6
เปเบซเป
เปเบซเป เปเบกเปเบเปเบเปเปเบเบทเปเบญเบชเปเบฒเบเบเบปเบงเปเบเบเบตเปเบกเบตเบเบญเบเปเบเบ. เปเบเบปเบฒเปเบเบปเปเบฒเปเบเปเบเบทเบเบชเปเบฒเบเบเบฑเปเบเบเบทเปเบเปเบเบเบญเบเบเบปเปเบเบเบญเบ
เปเบซเป เปเบเบเบเบญเบกเปเบฅเบฐเบขเบธเบเบขเบนเปเบซเบผเบฑเบเบเบฒเบเปเบเบเบเบญเบก. เบเบปเบงเบขเปเบฒเบเบเปเปเปเบเบเบตเปเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเปเบฅเบทเปเบญเบเบเบตเป
เบเบถเบเบเบดเบเบณ:
=> (เปเบซเป [[x 5]] (เบเบดเบก x)
... (เปเบซเป [[x 6]] (เบเบดเบก x))
... (เบเบดเบก x))
5
6
5
เปเบเป เปเบซเป macro เปเบเปเปเบงเบฅเบฒเบชเบญเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ: เปเบเบฑเบ vector เบเปเบฒเบเบปเบ เบเบปเบงเปเบ เปเบฅเบฐ เบฎเปเบฒเบเบเบฒเบ เปเบเบดเปเบเปเบเปเบฎเบฑเบ
เบเบฐเบเบดเบเบฑเบ. เบเบปเบงเปเบ เปเบเบฑเบ vector เบเบตเปเปเบเปเบฅเบฐเบญเบปเบเบเบฐเบเบญเบเปเบกเปเบเบเบปเบงเปเบเบเบฝเบงเบซเบผเบท vector
เบเบฒเบเบเปเบฒเบเบปเบเบเบนเปเบเปเบฒเบเบตเปเบเปเบฝเบเปเบเบเปเบเป. เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบปเบงเปเบเบเบฝเบง, เบกเบฑเบเบเบทเบเบกเบญเบเบซเบกเบฒเบเบกเบนเบเบเปเบฒ
เบเปเปเบกเบต; เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบ, เบกเบนเบเบเปเบฒเบเบตเปเบชเบฐเบซเบเบญเบเปเบกเปเบเบเบทเบเบเปเบฒเปเบเป.
=> (เปเบซเป [x [y 5]] (เบเบดเบก xy))
เบเปเปเบกเบต 5
list-comp
list-comp เบเบฐเบเบดเบเบฑเบเบเบงเบฒเบกเปเบเบปเปเบฒเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเป. เบกเบฑเบเปเบเปเปเบงเบฅเบฒเบชเบญเบเบซเบผเบทเบชเบฒเบกเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ. เบเปเบฒเบญเบดเบ
เบเบฒเบฅเบฒเบกเบดเปเบเบตเปเบกเปเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบตเปเบเบงเบเบเบธเบกเบกเบนเบเบเปเบฒเบเบฑเบเบเบทเบ, เปเบเบเบฐเบเบฐเบเบตเปเบเบตเบชเบญเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญ
เปเบฅเบทเบญเบเบฅเบฒเบเบเบฒเบเบเบฒเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเป. เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบตเบชเบฒเบกเปเบฅเบฐเบเบฒเบเปเบฅเบทเบญเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบฒเบเบเบฑเปเบเบเบญเบเบญเบญเบเบเบฒเบ
เบเบญเบเบฅเบฒเบเบเบฒเบเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเปเบเบเบญเบตเบเปเบชเปเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบตเปเบกเบตเปเบเบทเปเบญเบเปเบ. เบเบฒเบเบเบปเบงเบขเปเบฒเบ:
=> (เบเบฒเบเปเบเบฑเบเบเปเบฒ def (เบเปเบงเบ 10))
=> (list-comp x [x collection])
[0, 1, 2, 3, 4, 5, 6, 7, 8]
=> (list-comp (* x 2) [x collection])
[0, 2, 4, 6, 8, 10, 12, 14, 16]
=> (list-comp (* x 2) [x collection] (< x 5))
[0, 2, 4, 6, 8]
เบเปเป
เบเปเป เบเบทเบเปเบเปเปเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบขเปเบฒเบเบกเบตเปเบซเบเบเบปเบ. เบกเบฑเบเปเบเปเปเบงเบฅเบฒเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบฝเบงเปเบฅเบฐเบชเบปเปเบเบเบทเบเบเบฒเบเบเบตเปเบเบเบทเบ
เบกเบนเบโเบเปเบฒโเบเบงเบฒเบกโเบเบดเบ. เบเปเบฒ เบเบตเปเปเบเปเบเบดเบ เปเบกเปเบโเปเบซเปโเปเบเบฑเบโเบเบปเบงโเบเปเบฒโเบเบปเบโเบเบฒเบโ, เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ เบเบฐเบเบทเบเบชเบปเปเบเบเบทเบ, เปเบฅเบฐเปเบเบเบฒเบเบเบฑเบเบเบฑเบ.
เบเบปเบงเบขเปเบฒเบเบเบฒเบ เบเบณ เปเบเป:
=> (เบเปเปเปเบกเปเบเบเบงเบฒเบกเบเบดเบ)
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
=> (เบเปเปเปเบกเปเบเบเบดเบ)
เบเบตเปเปเบเปเบเบดเบ
=> (เบเปเปเปเบกเปเบเบเปเปเบกเบต)
เบเบตเปเปเบเปเบเบดเบ
or
or เบเบทเบเปเบเปเปเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบขเปเบฒเบเบกเบตเปเบซเบเบเบปเบ. เบกเบฑเบเปเบเปเปเบงเบฅเบฒเบขเปเบฒเบเบซเบเปเบญเบเบชเบญเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ. เบกเบฑเบเบเบฐเบเบฑเบเบเบทเบเบกเบฒ
เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเปเบฒเบญเบดเบเบเบตเปเบเปเปเปเบกเปเบเบเบญเบก. เบเปเบฒเบเปเปเบกเบตเบเปเบฒเบเบฑเปเบเบเปเบฒเบง, เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบชเบธเบเบเปเบฒเบเบเบฐเบเบทเบเบชเบปเปเบเบเบทเบ.
=> (เบซเบผเบท True False)
เบเบตเปเปเบเปเบเบดเบ
=> (เปเบฅเบฐ False เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ)
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
=> (เปเบฅเบฐ False 1 True False)
1
เบซเบกเบฒเบโเปเบซเบโ:
or short-circuits เปเบฅเบฐเบขเบธเบเบเบฒเบเบเบฐเปเบกเบตเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบฑเบเบเบตเบเบตเปเบเปเบฒเบเบตเปเปเบเปเบเบดเบเบเปเบฒเบญเบดเบเปเบกเปเบ
เบเบปเบ.
=> (เบซเบผเบทเบเบทเบเบเปเบญเบ (เบเบดเบก "เบชเบฐเบเบฒเบเบเบต"))
เบเบตเปเปเบเปเบเบดเบ
เบเบดเบก
เบเบดเบก เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบปเบเบเบฐเบฅเบดเบเปเบเบซเบเปเบฒเบเป. เบเบปเบงเบขเปเบฒเบเบเบฒเบเบเปเบฒเปเบเป:
(เบเบดเบก "เบชเบฐเบเบฒเบเบเบตเปเบฅเบ!")
เบซเบกเบฒเบโเปเบซเบโ:
เบเบดเบก เบเบฑเบเบเบทเบเบกเบฒเบชเบฐเปเปเบต เบเปเปเบกเบต.
quasiquote
quasiquote เบญเบฐโเบเบธโเบเบฒเบโเปเบซเปโเบเปเบฒเบโเบเบตเปโเบเบฐโเบญเปเบฒเบโเบญเบตเบโเปเบเบโเบเบญเบกโ, เปเบเปโเบเบฑเบโเบเบฑเบโเปเบฅเบทเบญเบโเปเบญเบปเบฒโเบเบฒเบโเบเบฐโเปเบกเบตเบโเบเบปเบโเบเบฒเบโเบชเบฐโเปเบเบโเบญเบญเบโ.
เบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบฒเบเปเบ เบ quasiquote เบชเบฒโเบกเบฒเบโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเบฑเบโเปเบฅเบทเบญเบโเบเบฒเบโเบเบฐโเปเบกเบตเบโเบเบปเบโเปเบเบโเบเปเบฒโเปเบเปโ unquote (~) The
เปเบเบเบเบญเบกเบเบฒเบเบเบฐเปเบกเบตเบเบเบปเบเบเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเปเบเบเปเบเบเปเบเป unquote-splice (~@). Quasiquote เบเบฑเบเบชเบฒเบกเบฒเบเปเบเบฑเบ
เบเบฝเบเปเบเบเปเบเป backquote (`) เบชเบฑเบเบเบฒเบฅเบฑเบ.
;; เปเบซเป 'qux' เปเบเบฑเบเบเบปเบงเปเบเบเบตเปเบกเบตเบเปเบฒ (bar baz)
`(foo ~qux)
; เปเบเบปเปเบฒเบเบฑเบ '(foo (bar baz))
`(foo ~@qux)
; เปเบเบปเปเบฒเบเบฑเบ '(foo bar baz)
quote
quote เบชเบปเปเบเบเบทเบเปเบเบเบเบญเบกเบเบตเปเบเปเบฒเบเปเบเปเบเบเบเปเปเปเบเปเบเบฐเปเบกเบตเบเบกเบฑเบ. quote เบเบฒเบเปเบฅเบทเบญเบเบญเบทเปเบเบชเบฒเบกเบฒเบเปเบเบฑเบ
เบเบฝเบเปเบเบเปเบเป apostrophe (') เบชเบฑเบเบเบฒเบฅเบฑเบ.
=> (setv x '(เบเบดเบก "เบชเบฐเบเบฒเบเบเบตเปเบฅเบ"))
; v variable x เบเบทเบเบเบฑเปเบเปเบเบฑเบเบเบฒเบเบชเบฐเปเบเบเบเบปเบ & เบเปเปเปเบเปเบเบฐเปเบกเบตเบ
=> x
(u'เบเบดเบก' u'เบชเบฐเบเบฒเบเบเบตเปเบฅเบ')
=> (eval x)
เบชเบฐเบเบฒเบเบเบตเปเบฅเบ
เบเปเบญเบเบเบฒเบ
เบเปเบญเบเบเบฒเบ เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบฒเปเบเบปเปเบฒเบกเบฒเปเบเบเบฒเบเปเบกเบเบนเบเบเบตเปเปเบซเป. เบกเบฑเบเปเบเปเปเบงเบฅเบฒเบขเปเบฒเบเบซเบเปเบญเบเบซเบเบถเปเบเบเบฒเบฅเบฒเบกเบดเปเบเบต
เบเบฒเบเบฅเบฐเบเบธเปเบกเบเบนเบเบเบตเป macros เบเบงเบเบเบทเบเบเปเบฒเปเบเบปเปเบฒ. เบซเบผเบฒเบเปเบกเบเบนเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบปเปเบฒเปเบเป
เบเบฑเบเบเบฝเบง เบเปเบญเบเบเบฒเบ.
เบเบปเบงเบขเปเบฒเบเบเปเปเปเบเบเบตเปเบเบฐเบเปเบฒเปเบเบปเปเบฒเบกเบฒเปเบเบเบฒเบ เปเบกเบเบนเบ-1 เปเบฅเบฐ เปเบกเบเบนเบ-2:
(เบเปเบญเบเบเบฒเบ module-1 module-2)
เบชเปเบงเบเบเบตเปเปเบซเบผเบทเบญ / cdr
เบชเปเบงเบเบเบตเปเปเบซเบผเบทเบญ เปเบฅเบฐ cdr เบชเบปเปเบเบเบทเบเบเบฒเบเปเบเบฑเบเบเปเบฒเบเบตเปเบเปเบฒเบเปเบเบฑเบเบเบฒเบเปเบเปเบเบฝเบเปเบเบเบเปเปเบกเบตเบญเบปเบเบเบฐเบเบญเบเบเปเบฒเบญเบดเบ:
=> (เบชเปเบงเบเบเบตเปเปเบซเบผเบทเบญ (เบเปเบงเบ 10))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
set-comp
set-comp เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบชเปเบฒเบเบเบธเบ. เบกเบฑเบเปเบเปเปเบงเบฅเบฒเบชเบญเบเบซเบผเบทเบชเบฒเบกเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ. เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเปเบฒเบญเบดเบเปเบกเปเบ
เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบงเบเบเบธเบกเบกเบนเบเบเปเบฒเบเบฑเบเบเบทเบ, เปเบเบเบฐเบเบฐเบเบตเปเบเบตเบชเบญเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเปเบฅเบทเบญเบเบฅเบฒเบเบเบฒเบเบเบฒเบ a
เบฅเบณเบเบฑเบ. เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบตเบชเบฒเบกเปเบฅเบฐเบเบฒเบเปเบฅเบทเบญเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบฒเบเบเบฑเปเบเบเบญเบเบญเบญเบเบเบฒเบเบชเปเบงเบเบเบญเบเบฅเบฒเบเบเบฒเบเปเบ
เบฅเปเบฒเบเบฑเบเปเบเบเบญเบตเบเปเบชเปเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบตเปเบกเบตเปเบเบทเปเบญเบเปเบ.
=> (เบเปเปเบกเบนเบ setv [1 2 3 4 5 2 3 4 5 3 4 5])
=> (set-comp x [x เบเปเปเบกเบนเบ] (odd? x))
{1, 3, 5}
slice
slice เบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเปเบญเบปเบฒเบเบธเบเบเปเบญเบเบเบญเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเปเบฅเบฐเบชเปเบฒเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเปเบซเบกเปเบเบฒเบเบกเบฑเบ. เปเบเบเบเบญเบก
เปเบเปเปเบงเบฅเบฒเบขเปเบฒเบเปเปเบญเบเปเบถเปเบเบเบฒเบฃเบฒเบกเบดเปเบเบตเบเบตเปเบฅเบฐเบเบธเบฅเบฒเบเบเบทเปเปเบเบทเปเบญเบเบฑเบ. เบชเบญเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบฒเบเปเบฅเบทเบญเบเบชเบฒเบกเบฒเบ
เปเบเปเปเบเบทเปเบญเปเบซเปเบเปเบฒเปเบซเบเปเบเปเบฅเบตเปเบกเบเบปเปเบเปเบฅเบฐเบชเบดเปเบเบชเบธเบเบเบญเบเบเบธเบเบเปเบญเบ. เบเปเบฒเบเบงเบเปเบเบปเบฒเบเปเปเปเบเปเบชเบฐเบซเบเบญเบ, เปเบเป
เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบญเบ เบเปเปเบกเบต เบเบฐเบเบทเบเปเบเปเปเบเบ. เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบฒเบเปเบฅเบทเบญเบเบเบตเบชเบฒเบกเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญ
เบเบฑเปเบโเบเบญเบโเบเบฒเบโเบเบงเบโเบเบธเบกโเบฅเบฐโเบซเบงเปเบฒเบโเบญเบปเบโเบเบฐโเบเบญเบโ.
slice เบเบฐเบเบดเบเบฑเบเบเบฒเบกเบเบปเบเบฅเบฐเบเบฝเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบนเปเบฎเปเบงเบกเบเบฒเบ Python เบเบญเบเบกเบฑเบ. เบเบฑเบเบเบฐเบเบตเบเบฒเบเบฅเบปเบเบเบทเบเบเบฑเบ
เปเบฅเบตเปเบกเปเบเปเบเบญเบเบเปเบฒเบเบเบญเบเบฅเบฒเบเบเบฒเบ. เบเบฒเบโเบเปเบฒโเปเบเปโเบเบปเบงโเบขเปเบฒเบโเบเบฒเบโเบขเปเบฒเบโ:
=> (เบเบฒเบเปเบเบฑเบเบเปเบฒ def (เบเปเบงเบ 10))
=> (เปเบเบฑเบเบชเบฐเปเบฅเป)
[0, 1, 2, 3, 4, 5, 6, 7, 8]
=> (เปเบเบฑเบเบชเบฐเปเบฅเป 5)
[5, 6, 7, 8, 9]
=> (เปเบเบฑเบเบชเบฐเปเบฅเป 2 8)
[2, 3, 4, 5, 6, 7]
=> (เบเบธเบเบชเบฐเบชเบปเบก 2 8 2)
[2, 4, 6]
=> (เปเบเบฑเบเบชเบฐเปเบฅเป -4 -2)
[6, 7]
เบเบดเปเบก / เบเบปเบเบชเบนเบเบเบปเบเบเบฒเบ
เปเบเป เบเบดเปเบก or เบเบปเบเบชเบนเบเบเบปเบเบเบฒเบ เบฎเบนเบเปเบเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบปเบเบชเบนเบเบเบปเบเบเบฒเบ เบเปเปโเบเบปเบโเปเบงเบฑเปเบ เปเบเปเบงเบฅเบฒเปเบฅเปเบ. เบเบปเบงเบขเปเบฒเบเบเบฒเบเบเปเบฒเปเบเป:
(เบเบดเปเบก)
; เบเบฑเบเบเบธเบเบเปเปเบเบปเบเปเบงเบฑเปเบเบชเบธเบเบเปเบฒเบเบเบทเบเปเปเป
(เบเบดเปเบก IOError)
; เบเบดเปเบก IOError
(เบเบดเปเบก (IOError "foobar"))
; เบเบดเปเบก IOError ("foobar")
เบเบดเปเบก เบชเบฒเบกเบฒเบเบเบญเบกเบฎเบฑเบเบเบฒเบเปเบเปเบเบฝเบเบเบฝเบง (an เบเปเปโเบเบปเบโเปเบงเบฑเปเบ class เบซเบผเบท instance) เบซเบผเบทเบเปเปเบกเบตเบเบฒเบเปเบเปเบเบฝเบเบเบฑเบ
เบเบปเบเบฅเบฐเบเบฑเบเบชเบธเบเบเปเบฒเบ เบเปเปโเบเบปเบโเปเบงเบฑเปเบ.
เบเบฐเบเบฒเบเบฒเบก
เปเบเป เบเบฐเบเบฒเบเบฒเบก เปเบเบเบเบญเบกเปเบกเปเบเปเบเปเปเบเบทเปเบญเปเบฅเบตเปเบกเบเบปเปเบ a เบเบฐเบเบฒเบเบฒเบก / เบเบฑเบ เบเบฑเบ. เปเบเบเบเบญเบกเปเบกเปเบเปเบเปเบเบฑเปเบเบเปเปเปเบเบเบตเป:
(เบเบฐเบเบฒเบเบฒเบก
(เบเบฑเบเบเบฑเบเบเบดเบเบเบฒเบ)
(เบเบฑเบ [e ZeroDivisionError] (เบเบดเบก "เบเบฒเบเปเบเปเบเปเบเบเบชเบนเบ"))
(เบญเบทเปเบเป (เบเบดเบก "เบเปเปเบกเบตเบเปเปเบเบดเบเบเบฒเบ"))
(เบชเบธเบเบเปเบฒเบ (เบเบดเบก "เบซเบกเบปเบเปเบฅเปเบง")))
เบเบฐเบเบฒเบเบฒเบก เบเปเบญเบเบกเบตเบขเปเบฒเบเปเปเบญเบเปเบถเปเบเบญเบฑเบ เบเบฑเบ block, เปเบฅเบฐเบเบฒเบเปเบฅเบทเบญเบเบญเบฒเบเบเบฐเบเบฐเบเบญเบเบกเบต an เบญเบทเปเบ or เบชเบธเบเบเปเบฒเบ
เบเบฑเบ. เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเบงเบฒเบกโเบเบดเบโเบเบฒเบโเปเบกเปเบโเบเบปเบโเบเบถเปเบโเบกเบฒโเบเบฑเบโเบเบฑเบโเบเบฑเบโเบเบนเปโเปเบโเบฅเบฐโเบซเบงเปเบฒเบโเบเบฒเบโเบเบฐโเบเบดโเบเบฑเบโเบเบญเบ
error-prone-function, that เบเบฑเบ block เบเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบ. เบเปเบฒเบเปเปเบกเบตเบเปเปเบเบดเบเบเบฒเบเบเบทเบเบเบปเบเบเบถเปเบเบกเบฒ, the เบญเบทเปเบ
block เบเบทเบเบเบฐเบเบดเบเบฑเบ. เปเบเป เบชเบธเบเบเปเบฒเบ block เบเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบเบชเบธเบเบเปเบฒเบเปเบเบเบเปเปเบเปเบฒเบเบถเบเปเบเบดเบเบเปเปเบงเปเบฒเบเบฐเปเบเบฑเบเบซเบผเบทเบเปเป
เบเบงเบฒเบกโเบเบดเบโเบเบฒเบโเปเบเปโเบเบปเบโเบเบถเปเบโเบกเบฒโ.
เปเบงเบฑเปเบเปเบชเบเปเบเปเบงเปเบฒ
เปเบเป เปเบงเบฑเปเบเปเบชเบเปเบเปเบงเปเบฒ macro เปเบเบฑเบ shorthand เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฝเบ an if เบเปเบฒเบเบฐเปเบซเบผเบเบเบตเปเบเบงเบเปเบเบดเปเบเบงเปเบฒเปเบซเป
เปเบเบทเปเบญเบเปเบเปเบกเปเบ เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ. เบเปเปเปเบเบเบตเปเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบเบฒเบเบเบฐเบซเบเบฒเบเบเบปเบงเบเบญเบเบกเบฐเบซเบฒเบเบฒเบเบเบตเป.
(เปเบงเบฑเปเบเปเบชเบเปเบเปเบเปเบฒเบเบฐเปเบซเบผเบเบเบตเปเบกเบตเปเบเบทเปเบญเบเปเบ)
(เบเปเบฒเบกเบตเปเบเบทเปเบญเบเปเบ
เบเปเปเบกเบต
(เปเบฎเบฑเบโเบเบฐโเปเบซเบผเบโเบเบฒเบโ))
unquote
เบเบฒเบโเปเบโเบฎเบนเบโเปเบเบ quasiquotedโ, unquote เบเบฑเบเบเบฑเบเปเบซเปเบเบฐเปเบกเบตเบเบเบปเบเบเบญเบเบชเบฑเบเบเบฒเบฅเบฑเบ. unquote เปเบกเปเบ aliased เบเบฑเบ
tilde (~) เบชเบฑเบเบเบฒเบฅเบฑเบ.
(เบเบทเปเบซเบเปเป "Cuddles")
(quasiquote (= เบเบทเป (เบเบทเป unquote)))
;=> (u'='u'name' u'Cuddles')
`(=เบเบทเป ~เบเบทเป)
;=> (u'='u'name' u'Cuddles')
unquote-splice
unquote-splice เบเบฑเบเบเบฑเบเปเบซเปเบกเบตเบเบฒเบเบเบฐเปเบกเบตเบเบเบปเบเบเบญเบเบชเบฑเบเบเบฒเบฅเบฑเบเบเบฒเบเปเบเบฎเบนเบเปเบเบ quasiquoted, เบเบทเบเบฑเบเบเบฑเบ
unquote. unquote-splice เบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเปเบเปเบเบฝเบเปเบเปเปเบกเบทเปเบญเบชเบฑเบเบเบฒเบฅเบฑเบเบเบตเปเบเบทเบ unquoted เบกเบต an
เบกเบนเบเบเปเบฒ iterable, เบเปเบญเบเบงเปเบฒเบกเบฑเบ "splice" เบเบตเป iterable เปเบเบปเปเบฒเปเบเปเบเบฎเบนเบเปเบเบ quasiquoted. unquote-splice is
เบเบฒเบกเปเบเบเบเบฑเบ ~@ เบชเบฑเบเบเบฒเบฅเบฑเบ.
(เบเบปเบงเปเบฅเบ def [1 2 3 4])
(quasiquote (+ (unquote-splice nums)))
;=> (u'+' 1L 2L 3L 4L)
`(+ ~@nums)
;=> (u'+' 1L 2L 3L 4L)
เปเบเปเบงเบฅเบฒเบเบตเป
เปเบเปเบงเบฅเบฒเบเบตเป เปเบกเปเบเบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบ เปเบงเบฑเปเบเปเบชเบเปเบเปเบงเปเบฒ, เบเบปเบเปเบงเบฑเปเบเบกเบฑเบเบเบปเบเบชเบญเบเปเบกเบทเปเบญเปเบเบทเปเบญเบเปเบเบเบตเปเปเบซเป เบเบตเปเปเบเปเบเบดเบ. เบกเบฑเบโเบเปเปโเปเบกเปเบ
เปเบเบฑเบโเปเบโเปเบเปโเบเบตเปโเบเบฐโเบกเบตโ เบญเบทเปเบ เบเบฅเบฑเบญเบเปเบ a เปเบเปเบงเบฅเบฒเบเบตเป เบกเบฐเบซเบฒเบเบฒเบ. เบเปเปเปเบเบเบตเปเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบเบฒเบเบเบฐเบซเบเบฒเบเบเบปเบงเบเบญเบ
เบกเบฐเบซเบฒเบเบฒเบ.
(เปเบกเบทเปเบญเบกเบตเปเบเบทเปเบญเบเปเบ)
(เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบกเบตโเปเบเบทเปเบญเบโเปเบ (เปเบฎเบฑเบโเบเปเบฒโเบชเบฑเปเบโ)โ)
เปเบเบเบฐเบเบฐเบเบตเป
เปเบเบเบฐเบเบฐเบเบตเป เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบเบซเบเบถเปเบเบซเบผเบทเบซเบผเบฒเบเบเบฑเบเบเบฒเบเปเบเบเบตเปเปเบเบทเปเบญเบเปเบเปเบกเปเบเบเบฑเบเบฅเบธเปเบเป. เบเปเปเปเบเบเบตเป
เบเบปเบงเบขเปเบฒเบเบเบฐเบญเบญเบ "เบชเบฐเบเบฒเบเบเบตเปเบฅเบ!" เปเบโเบเบตเปโเบซเบเปเบฒโเบเปโเบขเปเบฒเบโเบเปเปโเบขเบธเบโเบขเบฑเปเบโ:
(เปเบเบเบฐเบเบฐเบเบตเปเปเบเบฑเบเบเบงเบฒเบกเบเบดเบ (เบเบดเบก "เบชเบฐเบเบฒเบเบเบตเปเบฅเบ!"))
เบเบฑเบ
เบเบฑเบ เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบซเปเปเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบญเบเบเบฑเบเบเบฒเบเปเบเบเบปเบงเบเบฑเบเบเบฒเบเบชเบฐเบเบฒเบเบเบฒเบ. เบชเบฐเบเบฒเบเบเบฒเบ
เบเบนเปเบเบฑเบเบเบฒเบเบชเบฒเบกเบฒเบเบเบฑเปเบเบเปเบฒเบฅเบฐเบเบปเบเบเปเบญเบเบเบดเปเบเปเบฅเบฐเบเปเบฒเบฅเบฒเบเบกเบฑเบเบฅเบปเบเปเบเบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเบเบงเบเบเบธเบก. เปเบเป
เบเบปเบงเบขเปเบฒเบ archetypical เบเบญเบเบเบฒเบเบเปเบฒเปเบเป เบเบฑเบ เปเบกเปเบเปเบงเบฅเบฒเบเบฐเบกเบงเบเบเบปเบเปเบเบฅเป. เบเบฑเบ เบชเบฒเบกเบฒเบเบเบนเบเบกเบฑเบเบเปเบฅเบดเบเบปเบเปเบเบฑเบ
เปเบเปเปเบเปเบเบซเบผเบทเบเปเปเบชเบปเบเปเบเบกเบฑเบเบขเปเบฒเบเบชเบปเบกเบเบนเบ, เบเบฑเปเบเบเบตเปเบชเบฐเปเบเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป:
(เบเบฑเบ [[arg (expr)]] เบเบฅเบฑเบญเบ)
(เบกเบต [[(expr)]] เบเบฅเบฑเบญเบ)
(เบกเบต [[arg (expr)] [(expr)]] เบเบฅเบฑเบญเบ)
เบเบปเบงเบขเปเบฒเบเบเปเปเปเบเบเบตเปเบเบฐเปเบเบตเบ เบเปเบฒเบง เปเบเบฅเปเปเบฅเบฐเบเบดเบกเปเบเบทเปเบญเปเบเบเบญเบเบกเบฑเบเปเบชเปเบซเบเปเบฒเบเป. เปเบเป
เปเบเบฅเปเบเบทเบเบเบดเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบซเบผเบฑเบเบเบฒเบเบเบตเปเบกเบฑเบเปเบเปเบเบทเบเบเบธเบเปเบเปเบ.
(เบกเบต [[f (เปเบเบตเบ "NEWS")]] (เบเบดเบก (. เบญเปเบฒเบ f)))
เบเบฑเบ-เบญเบญเบเปเบเบ
เบเบฑเบ-เบญเบญเบเปเบเบ เปเบกเปเบเปเบเปเปเบเบทเปเบญเบซเปเปเบเบฑเบเบเบฑเบเปเบถเปเบเบเบฑเบเบญเบตเบเบญเบฑเบเปเบถเปเบ. เบซเบเปเบฒเบเบตเปเบเบฐเบเบดเบเบฑเบเบเบฒเบ
เบเบฒเบเบเบปเบเปเบเปเบเบเบงเบเบเบญเบกเบฎเบฑเบเบเปเบฒเบเบฝเบง: เบซเบเปเบฒเบเบตเปเบเบทเบเบเบปเบเปเบเปเบ, เปเบฅเบฐเบชเบปเปเบเบเบทเบเปเบซเบกเป
function เบเบฑเบ-เบญเบญเบเปเบเบ เปเบเปเปเบงเบฅเบฒเบขเปเบฒเบเบซเบเปเบญเบเบชเบญเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ: เบซเบเปเบฒเบเบตเปเบเบฐเบเบดเบเบฑเบ
เบเบฒเบเบเบปเบเปเบเปเบเปเบฅเบฐเบซเบเปเบฒเบเบตเปเบเปเบฒเบฅเบฑเบเบเบปเบเปเบเปเบ. เบเบฑเบเบเบฑเบเปเบเบทเปเบญเบเบเบปเบเปเบเปเบเปเบเปเบซเบผเบฒเบเบเบงเปเบฒเปเบถเปเบเบญเบฑเบ
เบเบณเปเบเป; เบเบงเบเปเบเบปเบฒเปเบเบปเปเบฒเบเบฐเบเบทเบเบเปเบฒเปเบเปเปเบเบเปเบฒเบชเบฑเปเบเบเบฒเบ outermost เบเบฑเบ innermost, ie. เบเปเบฒเบญเบดเบ
เปเบเบทเปเบญเบเบเบปเบเปเบเปเบเบเบฐเปเบเบฑเบเบเบฑเปเบเบเบญเบเบเบตเปเบชเบธเบ, เปเบฅเบฐเบญเบทเปเบเป. เบเบนเปเบญเบญเบเปเบเบเบเบตเปเบกเบตเบเบฒเบเปเบเปเบเบฝเบเปเบกเปเบเปเบญเบตเปเบเบงเปเบฒเบเบฝเบเปเบเป
เบเบทเบเบฑเบเบเบฒเบเปเบญเบตเปเบเบเบฑเบเบเบฑเบ.
(เบเบฑเบ-decorator decorator-เบกเปเบงเบ
(defn เบเบฒเบโเบซเบเปเบฒโเบเบตเป [] ... )
(เบกเบตเปเบเบทเปเบญเบเบเบปเบเปเบเปเบ1 decorator2...
(defn เบเบฒเบโเบซเบเปเบฒโเบเบตเป [] ... )
(เบกเบตเปเบเบทเปเบญเบเบเบปเบเปเบเปเบ (decorator arg)..
(defn เบเบฒเบโเบซเบเปเบฒโเบเบตเป [] ... )
เปเบเบเบปเบงเบขเปเบฒเบเบเปเปเปเบเบเบตเป, inc-decorator เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญ decorate เบซเบเปเบฒเบเบตเป เบเบญเบเบเบฒเบเบเบฑเปเบ เบกเบต
เบเบฑเบเบเบฑเบเบเบตเปเปเบเปเบชเบญเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเปเบฅเบฐเปเบญเบตเปเบเบเบฑเบเบเบฑเบเบเบตเปเบเบปเบเปเบเปเบเบเปเบงเบเบเปเบฒเบเบตเปเปเบเบฑเบ
incremented เปเบเบ 1. เปเบเปเบงเบฅเบฒเบเบตเปเบเบปเบเปเบเปเบ เบเบญเบเบเบฒเบเบเบฑเปเบ เบเบทเบเปเบญเบตเปเบเบเปเบงเบเบเปเบฒ 1 เปเบฅเบฐ 1, เบชเบธเบเบเปเบฒเบ
เบเบปเบเปเบเปเบฎเบฑเบเบเบฐเปเบเบฑเบ 4 (1 + 1 + 1 + 1).
=> (defn inc-decorator [func]
... (fn [value-1 value-2] (func (+ value-1 1) (+ value-2 1))))
=> (defn inc2-decorator [func]
... (fn [value-1 value-2] (func (+ value-1 2) (+ value-2 2))))
=> (with-decorator inc-decorator (defn เบเบญเบเบเบฒเบเบเบฑเปเบ [ab] (+ ab)))
=> (เบเบทเปเบก 1 1)
4
=> (with-decorator inc2-decorator inc-decorator
... (defn เบเบญเบเบเบฒเบเบเบฑเปเบ [ab] (+ ab)))
=> (เบเบทเปเบก 1 1)
8
with-gensyms
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.9.12.
with-gensym เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบชเปเบฒเบเบเบธเบเบเบญเบ gensym เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเปเบเปเปเบเบกเบฐเบซเบฒเบเบฒเบ. เบฅเบฐเบซเบฑเบเบเปเปเปเบเบเบตเป:
(with-gensyms [abc]
... )
เบเบฐเบซเบเบฒเบเปเบ:
(เปเบซเป [[a (gensym)
[b (gensym)
[c (gensym)]]
... )
เปเบเบดเปเบ เบเบฑเบ:
เบเบฒเบโเบชเปเบงเบโเบเบฒเบโเบเปเบฒโเปเบเป -gensymโ
เบเบปเบเบเบฐเบฅเบดเบ
เบเบปเบเบเบฐเบฅเบดเบ เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบชเปเบฒเบเบงเบฑเบเบเบธเปเบเบทเปเบญเบเบเปเบฒเปเบเบตเบเบเบตเปเบชเบปเปเบเบเบทเบเบเปเบฒเบซเบเบถเปเบเบซเบผเบทเบซเบผเบฒเบ. เปเบเบทเปเบญเบเบเปเบฒเปเบเบตเบเปเบเบเปเบฒ
เปเบกเปเบ iterable เปเบฅเบฐโเบเบฑเปเบโเบเบฑเปเบโเบชเบฒโเบกเบฒเบโเบเปเบฒโเปเบเปโเปเบ loopsโ, เบเบฑเบโเบเบตโเบฅเบฒเบโเบเบฒเบโเบเบงเบฒเบกโเปเบเบปเปเบฒโเปเบโเปเบฅเบฐโเบญเบทเปเบเปโเบเบตเปโเบเปเบฒเบโเบเบทโเบเบฑเบโ
เบเปเปเบชเปเบฒเบ.
เบเบฑเบเบเบฑเบ เบเบปเบงเปเบฅเบเปเบเบเบชเบธเปเบก เบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเบดเบเบตเบเบฒเบเบเบฐเบฅเบดเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบชเปเบฒเบเบเบธเบเบเบตเปเบเปเปเบกเบตเบเบญเบเปเบเบ
เปเบเบเบเปเปเบกเบตเบเบฒเบเบเปเบฅเบดเปเบเบเบเปเบฒเบเบงเบเบญเบฑเบเปเบเบฑเบเบเบดเบเบเบญเบเบเบงเบฒเบกเบเบปเบเบเปเบฒ.
=> (defn เบเบนเบ [เบเปเบฒเบชเปเบฒเบเบฐเบชเบดเบเบเบฒเบ]
... (เบชเปเบฒเบฅเบฑเบ [[(, เบเปเบฒเบชเปเบฒเบเบฐเบชเบดเบเบเบฒเบ) (เบเปเบฒเบชเปเบฒเบเบฐเบชเบดเบเบเบฒเบ zip)]]
... (เบเบปเบเบเบฐเบฅเบดเบ (* เบเปเบฒเบชเปเบฒเบเบฐเบชเบดเบเบเบฒเบ))))
=> (เบเบนเบ (เปเบฅเบเบฐ 5) (เปเบฅเบเบฐ 5))
=> (เบเปเบฒ list-comp [value (multiply (range 10)) (range 10))])
[0, 1, 4, 9, 16, 25, 36, 49, 64]
=> (เบเปเบฒเปเบเบปเปเบฒเปเบเบเบชเบธเปเบก)
=> (defn random-numbers [เบชเบนเบเบเปเปเบฒ]
... (เปเบเบเบฐเบเบฐเบเบตเป True (เบเบปเบเบเบฐเบฅเบดเบ (.random random เบเปเปเบฒเบชเบนเบ))))
=> (list-comp x [x (เปเบญเบปเบฒ 15 (random-เบเบปเบงเปเบฅเบ 1 50))])])
[7, 41, 6, 22, 32, 17, 5, 38, 18, 38, 17, 14, 23, 23, 19]
เบเบปเบโเบเบฐโเบฅเบดเบโเบเบฒเบ
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.9.13.
เบเบฐเบเบฑเบเบเบฐเบเบฐ 3.3 เปเบฅเบฐ UP เปเบเบปเปเบฒเบเบฑเปเบ!
เบเบปเบโเบเบฐโเบฅเบดเบโเบเบฒเบ เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเปเบเบซเบฒเปเบเบทเปเบญเบเบเปเบฒเปเบเบตเบเบเปเบญเบ. เบเบตเปเปเบกเปเบเปเบเบฑเบเบเบฐเปเบซเบเบเบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบ coroutine เบเบญเบเบเปเบฒเบ
เบชเบฒเบกเบฒเบเบกเบญเบเบซเบกเบฒเบเบเบฐเบเบงเบเบเบฒเบเบเบญเบเบกเบฑเบเปเบซเปเบเบฑเบ coroutine เบญเบทเปเบ, เปเบงเบปเปเบฒเบงเปเบฒ, เบเปเบฒเปเบเปเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบ:
เบเปเปเบชเบญเบเบเปเบญเบเบเบฑเบ.
Hy Core
Core เบซเบเปเบฒเบเบตเป
butlast
เบเบฒเบเบเปเบฒเปเบเป: (เปเบเปเบชเบธเบเบเปเบฒเบ coll)
เบชเบปเปเบเบเบทเบเบเบฒเบเบขเปเบญเบเบซเบผเบฑเบเบเบญเบเบเบฑเบเปเบปเบ เบเบปเบเปเบงเบฑเปเบเบฅเบฒเบเบเบฒเบเบชเบธเบเบเปเบฒเบเปเบ coll.
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (butlast (เปเบฅเบเบฐ 10)))
[0, 1, 2, 3, 4, 5, 6, 7, 8]
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (butlast [1]))
[]
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (butlast []))
[]
=> (เบเบฒเบเบเปเบฒเปเบเบปเปเบฒ itertools)
=> (เบฅเบฒเบเบเบทเป (เปเบญเบปเบฒ 5 (butlast (itetools.count 10))))
[10, 11, 12, 13, 14]
เบเป?
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.0.
เบเบฒเบเบเปเบฒเปเบเป: (เบเป? x)
เบเบปเบเบเบญเบเปเบเบ เบเบตเปเปเบเปเบเบดเบ if x เปเบกเปเบ iterable เปเบฅเบฐเบเปเปเปเบกเปเบเบชเบฒเบ.
=> (เบเปเบฅ? [1 2 3 4])
เบเบตเปเปเบเปเบเบดเบ
=> (coll? {"a" 1 "b" 2})
เบเบตเปเปเบเปเบเบดเบ
=> (coll? "abc")
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
cons
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.0.
เบเบฒเบเบเปเบฒเปเบเป: (เบเปเปเปเบชเบ a b)
เบชเบปเปเบเบเบทเบเบเบฒเบฅเบฒเบเบเปเปเปเบชเบเปเปเปเบเบฑเบเบฅเบปเบ a เปเบฅเบฐ cdr b.
=> (setv a (cons 'hd 'tl))
=> (= 'hd (เบฅเบปเบ a))
เบเบตเปเปเบเปเบเบดเบ
=> (= 'tl (cdr a))
เบเบตเปเปเบเปเบเบดเบ
เบเปเปเปเบชเบ?
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.0.
เบเบฒเบเบเปเบฒเปเบเป: (เบเปเปเปเบชเบ? เบเบน)
เบเบงเบเปเบเบดเปเบเบงเปเบฒ เบเบน เปเบเบฑเบเบเบธเบฅเบฑเบ cons.
=> (setv a (cons 'hd 'tl))
=> (เบเปเปเปเบชเบ? a)
เบเบตเปเปเบเปเบเบดเบ
=> (เบเปเปเปเบชเบ? nil)
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
=> (เบเปเปเปเบชเบ? [1 2 3])
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
Dec
เบเบฒเบเบเปเบฒเปเบเป: (เบเบฑเบเบงเบฒ x)
เบชเบปเปเบเบเบทเบเปเบถเปเบเปเปเบญเบเบเบงเปเบฒ x. เปเบเบปเปเบฒเบเบฑเบ (- x 1). เบเบปเบเบชเบนเบ เบเบฐเปเบเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ if (เบเปเปเปเบกเปเบ (เบเบปเบงเปเบฅเบ? x)).
=> (เบงเบฑเบเบเบต 3 เบเบฑเบเบงเบฒ)
2
=> (เบงเบฑเบเบเบต 0 เบเบฑเบเบงเบฒ)
-1
=> (เบงเบฑเบเบเบต 12.3 เบเบฑเบเบงเบฒ)
11.3
disassemble
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.0.
เบเบฒเบเบเปเบฒเปเบเป: (เบเบญเบเบเบฐเบเบญเบ เปเบเบฑเบเปเบกเปเบขเบทเบเบเบปเปเบ &เบเบฒเบเปเบฅเบทเบญเบ [เบฅเบฐเบซเบฑเบ เบเบดเบ])
เบเบดเปเบก Python AST เบชเปเบฒเบฅเบฑเบ Hy เปเบเบฑเบเปเบกเปเบขเบทเบเบเบปเปเบ เบเบปเบเบเบฐเบฅเบดเบเบกเบฒเบเบเบฐเบเบฒเบ. เบเปเบฒ codegen is เบเบตเปเปเบเปเบเบดเบ, เบซเบเปเบฒเบเบตเป
เบเบดเบกเบฅเบฐเบซเบฑเบ Python เปเบเบ.
=> ( disassemble '(เบเบดเบก "เบชเบฐเบเบฒเบเบเบตเปเบฅเบ!"))
เปเบกเบเบนเบ(
เบฎเปเบฒเบเบเบฒเบ=[
Expr(value=Call(func=Name(id='print'), args=[Str(s='Hello World!')], keywords=[], starargs=None, kwargs=None)])
=> ( disassemble '(เบเบดเบก "เบชเบฐเบเบฒเบเบเบตเปเบฅเบ!") เบเบงเบฒเบกเบเบดเบ)
เบเบดเบก('เบชเบฐเบเบฒเบเบเบตเปเบฅเบ!')
เบซเบงเปเบฒเบ?
เบเบฒเบเบเปเบฒเปเบเป: (เบซเบงเปเบฒเบ? coll)
เบเบปเบเบเบญเบเปเบเบ เบเบตเปเปเบเปเบเบดเบ if coll เบซเบงเปเบฒเบเปเบเบปเปเบฒ. เปเบเบปเปเบฒเบเบฑเบ (= 0 (เปเบฅเบ coll)).
=> (เบซเบงเปเบฒเบ? [])
เบเบตเปเปเบเปเบเบดเบ
=> (เปเบเบปเปเบฒ? "")
เบเบตเปเปเบเปเบเบดเบ
=> (เบซเบงเปเบฒเบ? (, 1 2))
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
เบเบธเบเป?
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.0.
เบเบฒเบเบเปเบฒเปเบเป: (เบเบธเบเป? เบเบฒเบ coll)
เบเบปเบเบเบญเบเปเบเบ เบเบตเปเปเบเปเบเบดเบ if (เบฅเปเบงเบ x) เปเบกเปเบเปเบซเบเบเบปเบเบเบตเปเปเบเปเบเบดเบเบชเปเบฒเบฅเบฑเบเบเบธเบเป x in coll, เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบ เบเบตเปเบเปเปเบเบทเบเบเปเบญเบเบเบตเปเบขเบนเป เบเบฑเบเบเบทเบ เบเบตเปเปเบเปเบเบดเบ
if coll เปเบกเปเบเบซเบงเปเบฒเบเปเบเบปเปเบฒ.
=> (เบเบธเบ? เปเบกเปเปเบเป? [2 4 6])
เบเบตเปเปเบเปเบเบดเบ
=> (เบเบธเบ? เปเบกเปเปเบเป? [1 3 5])
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
=> (เบเบธเบ? เปเบกเปเปเบเป? [2 4 5])
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
=> (เบเบธเบ? เปเบเบดเบเปเบกเปเบ? [])
เบเบตเปเปเบเปเบเบดเบ
เบฅเบญเบ?
เบเบฒเบเบเปเบฒเปเบเป: (เบฅเบญเบ? x)
เบเบปเบเบเบญเบเปเบเบ เบเบตเปเปเบเปเบเบดเบ if x เปเบกเปเบเบเบฒเบเบฅเบญเบ.
=> (เปเบฅเบทเปเบญเบ? 3.2)
เบเบตเปเปเบเปเบเบดเบ
=> (เปเบฅเบทเปเบญเบ? -2)
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
เปเบเบดเบเปเบกเปเบเบงเปเบฒ?
เบเบฒเบเบเปเบฒเปเบเป: (เปเบกเปเปเบเป? x)
เบเบปเบเบเบญเบเปเบเบ เบเบตเปเปเบเปเบเบดเบ if x เปเบกเปเบเปเบกเปเปเบเป. เบเบปเบเบชเบนเบ เบเบฐเปเบเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ if (เบเปเปเปเบกเปเบ (เบเบปเบงเปเบฅเบ? x)).
=> (เปเบกเปเปเบเป? 2)
เบเบตเปเปเบเปเบเบดเบ
=> (เปเบกเปเปเบเป? 13)
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
=> (เปเบกเปเปเบเป? 0)
เบเบตเปเปเบเปเบเบดเบ
identity
เบเบฒเบเบเปเบฒเปเบเป: (เบเบปเบงเบเบปเบ x)
เบชเบปเปเบเบเบทเบเบญเบฒเบเบดเบงเปเบกเบฑเบเบเบตเปเบชเบฐเปเบญเบเปเบซเปเบเบฑเบเบเบฑเบเบเบฑเบ.
=> (เบเบปเบงเบเบปเบ 4)
4
=> (เบฅเบฒเบเบเบทเป (เบเบปเบงเบเบปเบเปเบเบเบเบตเป [1 2 3 4]))
[1 2 3 4]
inc
เบเบฒเบเบเปเบฒเปเบเป: (inc x)
เปเบซเปเบเบปเบเบเบญเบเปเบเบเบซเบเบถเปเบเบซเบผเบฒเบเบเปเบงเบฒ x. เปเบเบปเปเบฒเบเบฑเบ (+ x 1). เบเบปเบเบชเบนเบ เบเบฐเปเบเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ if (เบเปเปเปเบกเปเบ (เบเบปเบงเปเบฅเบ? x)).
=> (inc 3)
4
=> (inc 0)
1
=> (inc 12.3)
13.3
เบเบปเบงเบขเปเบฒเบ?
เบเบฒเบเบเปเบฒเปเบเป: (เบเบปเบงเบขเปเบฒเบ? เบฅเบฐเบเบฑเบ x)
เบเบปเบเบเบญเบเปเบเบ เบเบตเปเปเบเปเบเบดเบ if x เปเบเบฑเบเบเบปเบงเบขเปเบฒเบเบเบญเบ เบฅเบฐเบเบฑเบ.
=> (เบเบปเบงเบขเปเบฒเบ? float 1.0)
เบเบตเปเปเบเปเบเบดเบ
=> (เบเบปเบงเบขเปเบฒเบ? int 7)
เบเบตเปเปเบเปเบเบดเบ
=> (เบเบปเบงเบขเปเบฒเบ? str (str "foo"))
เบเบตเปเปเบเปเบเบดเบ
=> (defclass TestClass [object])
=> (setv inst (TestClass))
=> (เบเบปเบงเบขเปเบฒเบ? TestClass inst)
เบเบตเปเปเบเปเบเบดเบ
เบเบณเบเบงเบเปเบเบฑเบก?
เบเบฒเบเบเปเบฒเปเบเป: (เบเปเบฒเบเบงเบเปเบเบฑเบก? x)
เบเบปเบเบเบญเบเปเบเบ เบเบตเปเปเบเปเบเบดเบ if x เปเบเบฑเบเบเบณเบเบงเบเปเบเบฑเบก. เบชเปเบฒเบฅเบฑเบ Python 2, เบเบตเปเปเบกเปเบเบเบทเบเบฑเบ int or เบเบฒเบง. เบชเปเบฒเบฅเบฑเบ Python 3,
เบเบตเปโเปเบกเปเบ int.
=> (เบเบณเบเบงเบเปเบเบฑเบก? 3)
เบเบตเปเปเบเปเบเบดเบ
=> (เบเบณเบเบงเบเปเบเบฑเบก? -2.4)
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
เปเบเบเปเบเบ
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.1.
เบเบฒเบเบเปเบฒเปเบเป: (เปเบเบเปเบเบ seq1 seq2 ... )
เปเบซเปเบเบปเบเปเบเบฑเบเบญเบฑเบเบเปเบณเบเบฑเบเบเบญเบเบฅเบฒเบเบเบฒเบเบเบณเบญเบดเบเปเบเปเบเปเบฅเบฐเบฅเบณเบเบฑเบ, เบเบฒเบเบเบฑเปเบเบญเบฑเบเบเบตเบชเบญเบ, เปเบฅเบฐเบญเบทเปเบเป.
=> (เบฅเบฒเบเบเบฒเบ (เปเบฅเบเบฐ 5) (เปเบฅเบเบฐ 100 105)))
[0, 100, 1, 101, 2, 102, 3, 103, 4]
=> (เบฅเบฒเบเบเบฒเบ (เปเบฅเบเบฐ 1000000) "abc"))
[0, 'a', 1, 'b', 2, 'c']
เปเบเบเปเบเบ
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.1.
เบเบฒเบเบเปเบฒเปเบเป: (interpose เบฅเบฒเบเบเบฒเบ seq)
เปเบซเปเบเบปเบเปเบเบฑเบเบญเบฑเบเบเปเบณเบเบฑเบเบเบญเบเบญเบปเบเบเบฐเบเบญเบเบเบญเบเบฅเบณเบเบฑเบเบเบตเปเปเบเบเบเบฑเบเปเบเบเบฅเบฒเบเบเบฒเบ.
=> (เบฅเบฒเบเบเบทเป (interpose "!" "abcd"))
['เบโเบโเบโเบ']
=> (เบฅเบฒเบเบเบฒเบ (interpose -1 (เปเบฅเบเบฐ 5)))
[0, -1, 1, -1, 2, -1, 3, -1, 4]
เบเปเบณเบเปเปเปเบณ?
เบเบฒเบเบเปเบฒเปเบเป: (เปเบฎเบฑเบเปเบเปเบเป? x)
เบเบปเบเบเบญเบเปเบเบ เบเบตเปเปเบเปเบเบดเบ if x เปเบกเปเบ iterable. Iterable objects เบเบฑเบเบเบทเบเบกเบฒเปเบเบฑเบ iterator เปเปเปเปเบกเบทเปเบญ (เบกเบฑเบ x) is
เปเบญเบตเปเบเบงเปเบฒ. เบเบปเบเบเบฑเบเบเปเบฒเบกเบเบฑเบ เบเบนเปเปเบฎเบฑเบเบเปเบณ?.
=> ;; เปเบฎเบฑเบเบงเบฝเบเบชเปเบฒเบฅเบฑเบเบชเบฒเบ
=> (เบกเบฑเบเปเบเบฑเบเปเบเปเบเป? (str "abcde"))
เบเบตเปเปเบเปเบเบดเบ
=> ;; เปเบฎเบฑเบเบงเบฝเบเบชเปเบฒเบฅเบฑเบเบฅเบฒเบเบเบฒเบ
=> (เปเบฎเบฑเบเปเบเปเบเปเป? [1 2 3 4 5])
เบเบตเปเปเบเปเบเบดเบ
=> ;; เปเบฎเบฑเบเบงเบฝเบเบชเปเบฒเบฅเบฑเบ tuples
=> (เปเบฎเบฑเบเปเบเปเบเปเป? (, 1 2 3))
เบเบตเปเปเบเปเบเบดเบ
=> ;; เปเบฎเบฑเบเบงเบฝเบเบชเปเบฒเบฅเบฑเบ dicts
=> (เปเบฎเบฑเบเปเบเปเบเป? {:a 1 :b 2 :c 3})
เบเบตเปเปเบเปเบเบดเบ
=> ;; เปเบฎเบฑเบเบงเบฝเบเบชเปเบฒเบฅเบฑเบ iterators / generators
=> (เปเบฎเบฑเบเบเปเบณเปเบเปเบเป? (เบเปเบณ 3))
เบเบตเปเปเบเปเบเบดเบ
เบเบนเปเปเบฎเบฑเบเบเปเบณ?
เบเบฒเบเบเปเบฒเปเบเป: (เบเบนเปเปเบฎเบฑเบเบเปเบณ? x)
เบเบปเบเบเบญเบเปเบเบ เบเบตเปเปเบเปเบเบดเบ if x เปเบเบฑเบเบเบนเปเปเบฎเบฑเบเบเปเบณ. Iterators เปเบกเปเบเบงเบฑเบเบเบธเบเบตเปเบเบฑเบเบเบทเบเบเบปเบเปเบญเบเปเบเบฑเบ
iterator เปเบกเบทเปเบญ (เบกเบฑเบ x) เปเบญเบตเปเบเบงเปเบฒ. เบเบปเบเบเบฑเบเบเปเบฒเบกเบเบฑเบ เบเปเบณเบเปเปเปเบณ?.
=> ;; เบเปเปเปเบฎเบฑเบเบงเบฝเบเบชเปเบฒเบฅเบฑเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเป
=> ( เบเบปเบเบชเบฐเบงเบฑเบ? [1 2 3 4 5])
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
=> ;; เปเบเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบ iter เบเบฒเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเป
=> (iter? (iter [1 2 3 4 5]))
เบเบตเปเปเบเปเบเบดเบ
=> ;; เบเปเปเปเบเปเปเบฎเบฑเบเบงเบฝเบเบชเปเบฒเบฅเบฑเบ dict
=> (เบเบปเบงเบเบตเปเบเบญเบ? {:a 1 :b 2 :c 3})
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
=> ;; เบชเปเบฒเบ iterator เบเบฒเบ dict เปเบเป
=> (iter? (iter {:a 1 :b 2 :c 3}))
เบเบตเปเปเบเปเบเบดเบ
เบฅเบฒเบเบเบทเป*
เบเบฒเบเบเปเบฒเปเบเป: (เบฅเบฒเบเบเบทเป* เบซเบปเบงเบซเบเปเบฒ &เบเบฑเบเบเปเบญเบ เบซเบฒเบ)
เบชเปเบฒเบเบฅเบฐเบเบปเบเบเปเบญเบเปเบชเปเบเบญเบเปเบเบฅ cons เบเปเบญเบ (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบธเบ) เบเบตเปเบกเบต arguments. เบเปเบฒ
เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป argument เบเบฝเบเปเบเปเบกเบตเบญเบปเบเบเบฐเบเบญเบเบซเบเบถเปเบ, เบชเบปเปเบเบเบทเบเบกเบฑเบ.
=> (เบฅเบฒเบเบเบฒเบ* 1 2 3 4)
(1 2 3. 4)
=> (เบฅเบฒเบเบเบฒเบ* 1 2 3 [4])
[1, 2, 3, 4]
=> (เบฅเบฒเบเบเบทเป* 1)
1
=> (cons? (เบฅเบฒเบเบเบฒเบ* 1 2 3 4))
เบเบตเปเปเบเปเบเบดเบ
เบเบฐเบซเบเบฒเบเบกเบฐเบซเบฒเบเบฒเบ
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.0.
เบเบฒเบเบเปเบฒเปเบเป: (เบเบฐเบซเบเบฒเบเบกเบฐเบซเบฒเบเบฒเบ เปเบเบเบเบญเบก)
เบชเบปเปเบเบเบทเบเบเบฒเบเบเบฐเบซเบเบฒเบเบกเบฐเบซเบฒเบเบฒเบเบญเบฑเบเปเบเบฑเบกเบเบตเปเบเบญเบ เบฎเบนเบเปเบเบ.
=> (macroexpand '(-> (ab) (xy)))
(u'x' (u'a' u'b') u'y')
=> (macroexpand '(-> (ab) (-> (cd) (ef))))
(u'e' (u'c' (u'a' u'b') u'd') u'f')
macroexpand-1
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.0.
เบเบฒเบเบเปเบฒเปเบเป: (เบกเบฐเบซเบฒเบเบฒเบ-1 เปเบเบเบเบญเบก)
เบชเบปเปเบเบเบทเบเบเบฒเบเบเบฐเบซเบเบฒเบเบกเบฐเบซเบฒเบเบฒเบเบเบฑเปเบเบเบญเบเบเบฝเบงเบเบญเบ เบฎเบนเบเปเบเบ.
=> (macroexpand-1 '(-> (ab) (-> (cd) (ef))))
(u'_>' (u'a' u'b') (u'c' u'd') (u'e' u'f'))
เบฎเบงเบกเบเบฑเบ
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.1.
เบเบฒเบเบเปเบฒเปเบเป: (เบฅเบงเบกเปเบเบปเปเบฒเบเบฑเบ f &เบเบฑเบเบเปเบญเบ เปเบเบเบเบตเป)
เบชเบปเปเบเบเบทเบเปเบเบเบเบตเปเบเบตเปเบเบฐเบเบญเบเบเปเบงเบเบชเปเบงเบเบเบตเปเปเบซเบผเบทเบญเบเบญเบเปเบเบเบเบตเปเบเบตเปเปเบเบปเปเบฒเบฎเปเบงเบกเบเบฑเบเบเปเบฒเบญเบดเบ. เบเปเบฒเบเบฐเปเบเปเบเบตเบเบเบถเปเบเปเบ
เบซเบผเบฒเบเบเบงเปเบฒเปเบถเปเบเปเบเบเบเบตเป, เปเบเบเบเบตเปเบเบฒเบเบซเบผเบฑเบ (เบเปเบฒเบเบซเบฒเบเบงเบฒ) เบเบฐเบเบทเบเบฅเบงเบกเปเบเบปเปเบฒเบเบฑเบ
เปเบเบเบเบตเปเปเบเบเบปเบเปเบเปเบฎเบฑเบเปเบเบเบเบฒเบเปเบเบซเบฒ (f val-in-เบเบปเบ val-in-latter).
=> (merge-with (fn [xy] (+ xy)) {"a" 10" b" 20} {"a" 1 "c" 30})
{u'a': 11L, u'c': 30L, u'b': 20L}
เบเปเป?
เบเบฒเบเบเปเบฒเปเบเป: (เบเปเป? x)
เบเบปเบเบเบญเบเปเบเบ เบเบตเปเปเบเปเบเบดเบ if x เปเบกเปเบเบซเบเปเบญเบเบเบงเปเบฒเบชเบนเบ. เบเบปเบเบชเบนเบ เบเบฐเปเบเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ if (เบเปเปเปเบกเปเบ (เบเบปเบงเปเบฅเบ? x)).
=> (เบเปเป? -2)
เบเบตเปเปเบเปเบเบดเบ
=> (เบเปเป? 3)
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
=> (เบเปเป? 0)
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
เบเปเป?
เบเบฒเบเบเปเบฒเปเบเป: (เบเปเป? x)
เบเบปเบเบเบญเบเปเบเบ เบเบตเปเปเบเปเบเบดเบ if x is nil / เบเปเปเบกเบต.
=> (nil? nil)
เบเบตเปเปเบเปเบเบดเบ
=> (nil? none)
เบเบตเปเปเบเปเบเบดเบ
=> (เบเปเป? 0)
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
=> (setf x nil)
=> (nil? x)
เบเบตเปเปเบเปเบเบดเบ
=> ;; list.append เบชเบฐเปเบซเบกเบตเบเบฑเบเบเบทเบเบเปเปเบกเบต
=> (nil? (. append [1 2 3] 4))
เบเบตเปเปเบเปเบเบดเบ
เบเปเปเบกเบต?
เบเบฒเบเบเปเบฒเปเบเป: (เบเปเป? x)
เบเบปเบเบเบญเบเปเบเบ เบเบตเปเปเบเปเบเบดเบ if x is เบเปเปเบกเบต.
=> (เบเปเป? เบเปเปเบกเบต)
เบเบตเปเปเบเปเบเบดเบ
=> (เบเปเป? 0)
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
=> (setf x เบเปเปเบกเบต)
=> (เบเปเป? x)
เบเบตเปเปเบเปเบเบดเบ
=> ;; list.append เบชเบฐเปเบซเบกเบตเบเบฑเบเบเบทเบเบเปเปเบกเบต
=> (เบเปเป? (. เบเบทเปเบก [1 2 3] 4))
เบเบตเปเปเบเปเบเบดเบ
เบ
เบเบฒเบเบเปเบฒเปเบเป: (เบเบต coll n &เบเบฒเบเปเบฅเบทเบญเบ [เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ nil])
เบเบฑเบเบเบทเบ n-th item in a collection, counting from 0. เบชเบปเปเบเบเบทเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, nil, เบเปเบฒ
เบญเบญเบเบเบฒเบเบเบญเบเปเบเบ (เปเบงเบฑเปเบเปเบชเบเปเบเปเปเบเปเบฅเบฐเบเบธเปเบงเปเปเบเบฑเบเบขเปเบฒเบเบญเบทเปเบ). เบเบปเบเบชเบนเบ เบเปเบฒเบเบดเบเบเบฒเบ if n เปเบกเปเบเบเบฒเบเบฅเบปเบ.
=> (เบเบ [1 2 4 7] 1)
2
=> (เบเบ [1 2 4 7] 3)
7
=> (nil? (เบเบ [1 2 4 7] 5))
เบเบตเปเปเบเปเบเบดเบ
=> (เบเบต [1 2 4 7] 5 "เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ")
'เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ'
=> (nth (เปเบญเบปเบฒ 3 (เบฅเบปเบ 2 [1 2 3 4 5 6])) 2))
5
=> (เบเบ [1 2 4 7] -1)
Traceback (เบเบฒเบเปเบเบซเบผเปเบฒเบชเบธเบเบชเบธเบเบเปเบฒเบ):
...
ValueError: Indices for islice() เบเบฐเบเปเบญเบเปเบเบฑเบ None เบซเบผเบท integer: 0 <= x <= sys.maxsize.
เบเบปเบงเปเบฅเบ?
เบเบฒเบเบเปเบฒเปเบเป: (เบเบปเบงเปเบฅเบ? x)
เบเบปเบเบเบญเบเปเบเบ เบเบตเปเปเบเปเบเบดเบ if x เปเบเบฑเบเบเบปเบงเปเบฅเบ, เบเบฒเบกเบเบตเปเบเบณเบเบปเบเปเบงเปเปเบ Python's เบเบปเบงเปเบฅเบ เบเบฑเปเบเบฎเบฝเบ.
=> (เบเบปเบงเปเบฅเบ? -2)
เบเบตเปเปเบเปเบเบดเบ
=> (เบเบปเบงเปเบฅเบ? 3.2)
เบเบตเปเปเบเปเบเบดเบ
=> (เบเบปเบงเปเบฅเบ? "foo")
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
เบเบตเบ?
เบเบฒเบเบเปเบฒเปเบเป: (เบเบตเบ? x)
เบเบปเบเบเบญเบเปเบเบ เบเบตเปเปเบเปเบเบดเบ if x เบเบตเบ. เบเบปเบเบชเบนเบ เบเบฐเปเบเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ if (เบเปเปเปเบกเปเบ (เบเบปเบงเปเบฅเบ? x)).
=> (เบเบตเบ? 13)
เบเบตเปเปเบเปเบเบดเบ
=> (เบเบตเบ? 2)
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
=> (เบเบตเบ? 0)
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
pos?
เบเบฒเบเบเปเบฒเปเบเป: (เปเบเบ? x)
เบเบปเบเบเบญเบเปเบเบ เบเบตเปเปเบเปเบเบดเบ if x เปเบกเปเบเปเบซเบเปเบเบงเปเบฒเบชเบนเบ. เบเบปเบเบชเบนเบ เบเบฐเปเบเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ if (เบเปเปเปเบกเปเบ (เบเบปเบงเปเบฅเบ? x)).
=> (เปเบเบช? 3)
เบเบตเปเปเบเปเบเบดเบ
=> (เปเบเบ? -2)
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
=> (เปเบเบช? 0)
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
เบเบฑเปเบเบเบตเบชเบญเบ
เบเบฒเบเบเปเบฒเปเบเป: (เบเบตเบชเบญเบ coll)
เบชเบปเปเบเบเบทเบเบชเบฐเบกเบฒเบเบดเบเบเบตเบชเบญเบเบเบญเบ coll. เปเบเบปเปเบฒเบเบฑเบ (เปเบเปเบฎเบฑเบ coll 1).
=> (เบงเบดเบเบฒเบเบต [0 1 2])
1
เบเบฒเบ
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.0.
เบเบฒเบเบเปเบฒเปเบเป: (เบเบฒเบ เบเบฒเบ coll)
เปเบซเปเบเบปเบเปเบเบฑเบเบเปเบฒเบเบฒเบกเปเบซเบเบเบปเบ-เบเบงเบฒเบกเบเบดเบเบเบณเบญเบดเบเบเบญเบ (เบฅเปเบงเบ x) เบชเบณ เบฅเบฑเบเปเบเป x in coll, เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบ nil.
Return nil if coll เปเบกเปเบเบซเบงเปเบฒเบเปเบเบปเปเบฒ.
=> (เบเบฒเบเบญเบฑเบ? [2 4 6])
เบเบตเปเปเบเปเบเบดเบ
=> (nil? (เบเบฒเบเบญเบฑเบเปเบกเปเบ? [1 3 5]))
เบเบตเปเปเบเปเบเบดเบ
=> (nil? (เบเบฒเบเบเบปเบงเบเบปเบ [0 "" []]))
เบเบตเปเปเบเปเบเบดเบ
=> (เบเบฒเบเบเบปเบงเบเบปเบ [0 "เบเปเปเบซเบงเปเบฒเบเปเบเบปเปเบฒ" []])
'เบชเบฐเบเบฃเบดเบเบเบตเปเบเปเปเบซเบงเปเบฒเบเปเบเบปเปเบฒ'
=> (nil? (เบเบฒเบโเบเบปเบโเปเบกเปเบโเปเบเป? []))
เบเบตเปเปเบเปเบเบดเบ
เบชเบฒเบ?
เบเบฒเบเบเปเบฒเปเบเป: (เบชเบฒเบ? x)
เบเบปเบเบเบญเบเปเบเบ เบเบตเปเปเบเปเบเบดเบ if x เปเบเบฑเบเบชเบฒเบ.
=> (string? "foo")
เบเบตเปเปเบเปเบเบดเบ
=> (เบชเบฐเบเบฃเบดเบ? -2)
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
เบชเบฑเบเบเบฒเบฅเบฑเบ?
เบเบฒเบเบเปเบฒเปเบเป: (เบชเบฑเบเบเบฒเบฅเบฑเบ? x)
เบเบปเบเบเบญเบเปเบเบ เบเบตเปเปเบเปเบเบดเบ if x เปเบเบฑเบเบชเบฑเบเบเบฒเบฅเบฑเบ.
=> (เบชเบฑเบเบเบฒเบฅเบฑเบ? 'foo)
เบเบตเปเปเบเปเบเบดเบ
=> (เบชเบฑเบเบเบฒเบฅเบฑเบ? '[abc])
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
เบชเบนเบ?
เบเบฒเบเบเปเบฒเปเบเป: (เบชเบนเบ? x)
เบเบปเบเบเบญเบเปเบเบ เบเบตเปเปเบเปเบเบดเบ if x เปเบกเปเบเบชเบนเบ.
=> (เบชเบนเบ? 3)
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
=> (เบชเบนเบ? -2)
เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ
=> (เบชเบนเบ? 0)
เบเบตเปเปเบเปเบเบดเบ
เบฅเปเบฒเบเบฑเบ เบซเบเปเบฒเบเบตเป
เบเบฑเบเบเบฑเบเบฅเปเบฒเบเบฑเบเบชเบฒเบกเบฒเบเบชเปเบฒเบเบซเบผเบทเบเปเบฒเปเบเบตเบเบเบฒเบเบขเบนเปเปเบเบฅเปเบฒเบเบฑเบเบเบตเปเบเปเปเบกเบตเบเบญเบเปเบเบเบเบตเปเบกเบตเบเปเบฒเปเบฎเบเบเบตเปเบเปเปเบกเบต
เบฎเบฝเบเบฎเปเบญเบเปเบซเปเบฅเปเบฒเบเบฑเบเบเบทเบเบฎเบฑเบเบฎเบนเปเบขเปเบฒเบเปเบเบฑเบกเบชเปเบงเบเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบซเบผเบทเบเบฑเบเบเบธเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบ. เบเบงเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบฎเบฑเบเบชเบดเปเบเบเบตเปเปเบเบ
เบชเบปเปเบเบเบทเบ Python iterator.
เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเปเปเบเบทเปเบญเบเบเปเบฒเปเบเบตเบเปเบฅเบ Fibonacci infinite canonical เปเบเบฑเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบงเบดเบเบตเบเบฒเบเบเปเบฒเปเบเป
เบเบฒเบเบซเบเปเบฒเบเบตเปเปเบซเบผเบปเปเบฒเบเบตเป.
(defn fib []
(เบเบธเบ a 0)
(เบเบธเบ b 1)
(เปเบเบเบฐเบเบฐเบเบตเปเปเบเบฑเบเบเบงเบฒเบกเบเบดเบ
(เบเบปเบเบเบฐเบฅเบดเบ เบ)
(setv (, ab) (, b (+ ab)))))
เบซเบกเบฒเบเปเบซเบ (เปเบเบเบฐเบเบฐเบเบตเป เบเบตเปเปเบเปเบเบดเบ ... ) เบงเบปเบ. เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบตเบเบเบฒเบเบเบตเปเปเบ REPL,
=> (fib)
เบเบฒเบเปเบญเบตเปเบเบเบฑเบเบเบฑเบเบเบฐเบชเบปเปเบเบเบทเบเบเบฝเบเปเบเปเบเบปเบงเบเปเบฝเบเปเบเบ, เปเบเปเบเปเปเปเบเปเบเบปเบเบเบปเบเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฅเบดเปเบเบเบกเบฑเบ.
เบเบฐเบเบฒเบเบฒเบกเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบเบเบตเปเบเปเปเปเบเปเปเบเบฐเบเปเบฒเปเบซเปเปเบเบฑเบ loop infinite เบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเบเบเปเบงเบฒเบกเบฑเบ
เปเบเป RAM เบเบตเปเบกเบตเบขเบนเปเบเบฑเบเบซเบกเบปเบ, เบซเบผเบทเปเบเบเปเบฅเบฐเบเบตเบเบตเปเบเบปเบเบเปเบงเบฒเบเปเบญเบเบเปเบฒเบกเบฑเบ.
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (fib))
[1โ] 91474 เบเปเบฒ hyโ
เปเบเบทเปเบญเปเบญเบปเบฒเบเบปเบงเปเบฅเบ Fibonacci 10 เปเบเบเบณเบญเบดเบ, เปเบซเปเปเบเป เปเบเปเปเบงเบฅเบฒ. เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒ เปเบเปเปเบงเบฅเบฒ เบเบฑเบเบชเบปเปเบเบเบทเบเปเบเบทเปเบญเบเบเบฑเปเบเปเบ,
เบชเบฐเบเบฑเปเบเบเปเบญเบเบชเปเบฒเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบฒเบเบกเบฑเบ.
=> (เบฅเบฒเบเบเบทเป (เปเบญเบปเบฒ 10 (fib)))
[0, 1, 1, 2, 3, 5, 8, 13, 21]
เปเบเบทเปเบญเปเบญเบปเบฒเบเบปเบงเปเบฅเบ Fibonacci เบขเบนเปเบเบฑเบเบเบฐเบเบต 9, (เปเบฅเบตเปเบกเบเบฒเบ 0):
=> (เบเบต (fib) 9)
34
เบงเบปเบเบเบญเบ
เบเบฒเบเบเปเบฒเปเบเป: (เบฎเบญเบเบงเบฝเบ coll)
เบชเบปเปเบเบเบทเบเบเบฒเบเบเปเปเบฒเบเบทเบเบเบตเปเบเปเปเบกเบตเบเบญเบเปเบเบเบเบญเบเบชเบฐเบกเบฒเบเบดเบเบเบญเบ coll.
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (เปเบญเบปเบฒ 7 (เบงเบปเบเบเบญเบ [1 2 3])))
[1, 2, 3, 1, 2, 3, 1]
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (เปเบญเบปเบฒ 2 (เบงเบปเบเบเบญเบ [1 2 3])))
[1, 2]
เปเบเบเบเปเบฒเบเบเบฑเบ
เบเบฒเบเบเปเบฒเปเบเป: (เบเบตเปโเปเบเบโเบเปเบฒเบโเบเบฑเบ coll)
เบชเบปเปเบเบเบทเบเบเบปเบงเปเบเบเบตเปเบเบฐเบเบญเบเบกเบตเบชเบฐเบกเบฒเบเบดเบเบเบตเปเบเปเปเบเปเปเบฒเบเบฑเบเปเบ coll.
=> (เบฅเบฒเบเบเบทเป (เปเบเบเบเปเบฒเบเบเบฑเบ [ 1 2 3 4 3 5 2 ]))
[1, 2, 3, 4, 5]
=> (เบฅเบฒเบเบเบทเป (เบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ []))
[]
=> (เบฅเบฒเบเบเบทเป (เบเบตเปเปเบเบเบเปเบฒเบ (iter [ 1 2 3 4 3 5 2 ])))
[1, 2, 3, 4, 5]
เบงเบฒเบ
เบเบฒเบเบเปเบฒเปเบเป: (เบฅเบปเบ n coll)
เบชเบปเปเบเบเบทเบเปเบเบทเปเบญเบเปเบฎเบฑเบเบเปเบณ, เบเปเบฒเบกเบญเบฑเบเบเบณเบญเบดเบ n เบชเบฐเบกเบฒเบเบดเบเบเบญเบ coll. เบเบปเบเบชเบนเบ เบเปเบฒเบเบดเบเบเบฒเบ if n is
เบเบฐเบเบปเบเบเบฒเบเบฅเบปเบ.
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (เปเบฅเบทเปเบญเบ 2 [1 2 3 4 5]))
[3, 4, 5]
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (เปเบฅเบทเปเบญเบ 4 [1 2 3 4 5]))
[5]
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (เปเบฅเบทเปเบญเบ 0 [1 2 3 4 5]))
[1, 2, 3, 4, 5]
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (เปเบฅเบทเปเบญเบ 6 [1 2 3 4 5]))
[]
เบซเบผเบธเบเบชเบธเบเบเปเบฒเบ
เบเบฒเบเบเปเบฒเปเบเป: (เบซเบผเบธเบโเบฅเบปเบโเบชเบธเบโเบเปเบฒเบโ n coll)
เบเบญเบเปเบเปเบเบเบเบตเปเบเบฑเบเปเบปเบ เบเบปเบเปเบงเบฑเปเบเบญเบฑเบเบชเบธเบเบเปเบฒเบ n เบฅเบฒเบเบเบฒเบเปเบ coll. เบเบปเบเบชเบนเบ เบเปเบฒเบเบดเบเบเบฒเบ if n is
เบเบฐเบเบปเบเบเบฒเบเบฅเบปเบ.
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (เปเบฅเบทเปเบญเบ 5 เบชเบธเบเบเปเบฒเบ (เปเบฅเบเบฐ 10 20)))
[10, 11, 12, 13, 14]
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (เปเบฅเบทเปเบญเบ - เบชเบธเบเบเปเบฒเบ 0 (เปเบฅเบเบฐ 5)))
[0, 1, 2, 3, 4]
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (เปเบฅเบทเปเบญเบ - เบชเบธเบเบเปเบฒเบ 100 (เปเบฅเบเบฐ 100)))
[]
=> (เบเบฒเบเบเปเบฒเปเบเบปเปเบฒ itertools)
=> (เบฅเบฒเบเบเบทเป (เปเบญเบปเบฒ 5 (เบฅเบธเบเบฅเบปเบ 100 เบชเบธเบเบเปเบฒเบ (itetools.count 10))))
[10, 11, 12, 13, 14]
เบฅเบธเบเบฅเบปเบ
เบเบฒเบเบเปเบฒเปเบเป: (เบซเบผเบธเบโเบฅเบปเบโเปเบโเบเบฐโเบเบฐโเบเบตเปโ เบเบฒเบ coll)
เบชเบปเปเบโเบเบปเบโเปเบเบฑเบ iterator, เบเปเบฒเบกโเบชเบฐโเบกเบฒโเบเบดเบโเบเบญเบ coll เบเบปเบเบเปเบงเบฒ เบเบฒเบ is เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ.
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (drop-while even? [2 4 7 8 9]))
[7, 8, 9]
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป ( drop-while เบเบปเบงเปเบฅเบ? [1 2 3 เบเปเปเบกเบต "a"])))
[เบเปเปเบกเบต, u'a']
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (drop-while pos? [2 4 7 8 9]))
[]
เบเบฒเบเบเบฑเปเบเบเบญเบ
เบเบฒเบเบเปเบฒเปเบเป: (เบเบฒเบเบเบฑเปเบเบเบญเบ เบเบฒเบ coll)
เบเบญเบเปเบเปเบเบเบเบตเปเบชเบณเบฅเบฑเบเบฅเบฒเบเบเบฒเบเบเบฑเบเปเบปเบเปเบ coll เบเบตเปเบเปเบฒเบเบเบฒเบเบเบฒเบเบเบฐเปเบ เบเบฒเบ.
เปเบเบดเปเบ เปเบญเบปเบฒ.
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (เบเบฒเบเบเบฑเปเบเบเบญเบ pos? [1 2 3 -4 5 -7]))
[1, 2, 3, 5]
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (เบเบฒเบเบเบฑเปเบเบเบญเบเปเบเบดเบเปเบกเปเบ? [1 2 3 -4 5 -7]))
[2, -4]
เปเบเบ
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.9.12.
เบเบฒเบเบเปเบฒเปเบเป: (เปเบ coll)
เบชเบปเปเบเบเบทเบเบฅเบฒเบเบเบฒเบเบเบฝเบงเบเบญเบเบฅเบฒเบเบเบฒเบเบเบฑเบเปเบปเบเปเบ coll, เปเบเบเบเบฒเบเปเบเบฅเบฒเบเบเบฒเบเบเบตเปเบกเบตเบเบฑเบเปเบปเบ เปเบฅเบฐ/เบซเบผเบท
tuples.
=> (เปเบ [1 2 [3 4] 5])
[1, 2, 3, 4, 5]
=> (เปเบ ["foo" (, 1 2) [1 [2 3] 4] "bar"])
['foo', 1, 2, 1, 2, 3, 4, 'เบเบฒ']
เปเบฎเบฑเบเบเป เบณ
เบเบฒเบเบเปเบฒเปเบเป: (เปเบฎเบฑเบเบเปเบณ fn x)
เบเบญเบเปเบเปเบเบเบเบญเบ x, fn(x), fn(fn(x)), เปเบฅเบฐเบญเบทเปเบเป
=> (เบฅเบฒเบเบเบทเป (เปเบญเบปเบฒ 5 (iterate inc 5)))
[5, 6, 7, 8, 9]
=> (เบฅเบฒเบเบเบทเป (เปเบญเบปเบฒ 5 (iterate (fn [x] (* xx)) 5)))
[5, 25, 625, 390625, 152587890625]
เบญเปเบฒเบ
เบเบฒเบเบเปเบฒเปเบเป: (เบญเปเบฒเบ &เบเบฒเบเปเบฅเบทเบญเบ [เบเบฒเบเปเบเบฅเป eof])
เบญเปเบฒเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบ Hy เบเปเปเปเบเบเบฒเบ เบเบฒเบเปเบเบฅเป (เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบเบฑเบ sys.stdin), เปเบฅเบฐเบชเบฒเบกเบฒเบเปเบญเบปเบฒ a
single byte เปเบเบฑเบ EOF (เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบเบฑเบ string เบซเบงเปเบฒเบเปเบเบปเปเบฒ). เบเบปเบเบชเบนเบ EOFError if เบเบฒเบเปเบเบฅเป เบชเบดเปเบเบชเบธเบเบเปเบญเบ
เบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบตเปเบชเบปเบกเบเบนเบเบชเบฒเบกเบฒเบเบเบทเบเบงเบดเปเบเบฒเบฐ.
=> (เบญเปเบฒเบ)
(+ 2 2)
('+' 2 2)
=> (eval (เบญเปเบฒเบ))
(+ 2 2)
4
=> (เบเปเบฒเปเบเบปเปเบฒ io)
=> (def buffer (io.StringIO "(+ 2 2)\n(- 2 1)"))
=> (eval (เบเบณเปเบเปเบญเปเบฒเบ [] {"from_file" buffer}))
4
=> (eval (เบเบณเปเบเปเบญเปเบฒเบ [] {"from_file" buffer}))
1
=> ; เบชเบปเบกเบกเบธเบเบงเปเบฒ "example.hy" เบเบฐเบเบญเบเบกเบต:
=> ; (เบเบดเบก "เบชเบฐเบเบฒเบเบเบต")
=> ; (เบเบดเบก "เปเบเบ!")
=> (เบเปเบงเบ [[f (เปเบเบตเบ "example.hy")]]
... (เบเบฐเบเบฒเบเบฒเบก
... (เปเบเบเบฐเบเบฐเบเบตเปเปเบเบฑเบเบเบงเบฒเบกเบเบดเบ
... (เปเบซเป [[exp (เบญเปเบฒเบ f)]]
... (เปเบฎเบฑเบ
... (เบเบดเบก "OHY" exp)
... (eval exp))))
... (เบเบฑเบ [e EOFError]
... (เบเบดเบก "EOF!"))))
เปเบญเปเบ ('เบเบดเบก' 'เบชเบฐเบเบฒเบเบเบต')
เบชเบฐเบเบฒเบเบเบต
เปเบญเปเบ ('เบเบดเบก' 'เปเบเบ!')
เปเบเบ!
EOF!
เปเบญเบปเบฒ
เบเบฒเบเบเปเบฒเปเบเป: (เปเบญเบปเบฒเบญเบญเบ เบเบฒเบ coll)
เบชเบปเปเบเบเบทเบเบเบปเบงเปเบเบเบฒเบ coll เบกเบตเบญเบปเบเบเบฐเบเบญเบเบเบตเปเบเปเบฒเบเบเบฒเบเบเบฒเบเบเบฐเปเบ, เบเบฒเบ, เปเบญเบปเบฒเบญเบญเบ.
เปเบเบดเปเบ เบเบฒเบเบเบฑเปเบเบเบญเบ.
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (เปเบญเบปเบฒเบเบตเบ? [1 2 3 4 5 6 7]))
[2, 4, 6]
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (เบฅเบปเบ pos? [1 2 3 4 5 6 7]))
[]
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (เปเบญเบปเบฒ neg? [1 2 3 4 5 6 7]))
[1, 2, 3, 4, 5, 6, 7]
เบเปเปเบฒ
เบเบฒเบเบเปเบฒเปเบเป: (เบเปเบณ x)
เปเบซเปเบเบปเบเปเบเบฑเบเบเบปเบงเบซเบเปเป (เบเปเปเบกเบตเบเบญเบเปเบเบ) เบเบญเบ x.
=> (เบฅเบฒเบเบเบทเป (เปเบญเบปเบฒ 6 (เปเบฎเบฑเบเบเปเบณ "s")))
[u's', u's', u's', u's', u's', u's']
repeatedly
เบเบฒเบเบเปเบฒเปเบเป: (เบเปเบณเป fn)
เบชเบปเปเบโเบเบทเบโเบเบฒเบโเปเบฎเบฑเบโเปเบซเปโเบเปเบณโเปเบเบโเบเบฒเบโเปเบ fn repeatedly
=> (เบเปเบฒเปเบเบปเปเบฒ [random [randint]])
=> (เบฅเบฒเบเบเบทเป (เปเบญเบปเบฒ 5 (เบเปเบณเป (fn [] (randint 0 10)))))
[6, 2, 0, 6, 7]
เปเบเปเปเบงเบฅเบฒ
เบเบฒเบเบเปเบฒเปเบเป: (เปเบญเบปเบฒ n coll)
เปเบซเปเบเบปเบเปเบเบฑเบเบเบปเบงเบเปเบฝเบเปเบเบเบเบตเปเบเบฑเบเบเบธเบญเบฑเบเบเบณเบญเบดเบ n เบชเบฐเบกเบฒเบเบดเบเบเบญเบ coll. เบเบปเบเบชเบนเบ เบเปเบฒเบเบดเบเบเบฒเบ if n is
เบเบฐเบเบปเบเบเบฒเบเบฅเบปเบ.
=> (เบฅเบฒเบเบเบทเป (เปเบญเบปเบฒ 3 [1 2 3 4 5]))
[1, 2, 3]
=> (เบฅเบฒเบเบเบทเป (เปเบญเบปเบฒ 4 (เปเบฎเบฑเบเบเปเบณ "s")))
[u's', u's', u's', u's]
=> (เบฅเบฒเบเบเบทเป (เปเบญเบปเบฒ 0 (เปเบฎเบฑเบเบเปเบณ "s")))
[]
เปเบญเบปเบฒเบญเบฑเบเบเบต
เบเบฒเบเบเปเบฒเปเบเป: (เบเบญเบเบเบต n coll)
เปเบซเปเบเบปเบเปเบเบฑเบเบเบปเบงเบขเปเบญเบเบซเบผเบฑเบเบเบตเปเบกเบตเบเบธเบเป n- เบชเบฐโเบกเบฒโเบเบดเบโเบเบตโ coll.
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (take-nth 2 [1 2 3 4 5 6 7]))
[1, 3, 5, 7]
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (take-nth 3 [1 2 3 4 5 6 7]))
[1, 4, 7]
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (take-nth 4 [1 2 3 4 5 6 7]))
[1, 5]
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (take-nth 10 [1 2 3 4 5 6 7]))
[1]
เปเบเปเปเบงเบฅเบฒเปเบเบเบฐเบเบฐเบเบตเป
เบเบฒเบเบเปเบฒเปเบเป: (เปเบเปเปเบงเบฅเบฒเปเบเบเบฐเบเบฐเบเบตเป เบเบฒเบ coll)
เบชเบปเปเบเบเบทเบเบเบปเบงเปเบเบเบฒเบ coll เปเบเบฑเบ เบเบฒเบ เบเบฑเบเบเบทเบเบกเบฒ เบเบตเปเปเบเปเบเบดเบ.
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (เปเบเปเปเบงเบฅเบฒเปเบเบเบฐเบเบฐเบเบตเป pos? [ 1 2 3 -4 5]))
[1, 2, 3]
=> (เบฅเบฒเบเบเบฒเบ ( take-while neg ? [ -4 -3 1 2 5 ]))
[-4, -3]
=> (เบฅเบฒเบเบเบฒเบ ( take-while neg ? [ 1 2 3 -4 5 ]))
[]
zip เบเบฑเบ
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.9.13.
เบเบฒเบเบเปเบฒเปเบเป: (zipwith fn coll ... )
เปเบเบปเปเบฒเบเบฑเบ เปเบเบชเบฐเบเบต, เปเบเปเปเบเปเบเบฑเบเบเบฑเบเบซเบผเบฒเบ argument เปเบเบเบเบตเปเบเบฐเบชเปเบฒเบ tuple. เบเปเบฒ
zip เบเบฑเบ เปเบญเบตเปเบเบงเปเบฒ N collections, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ fn เบเปเบญเบเบเบญเบกเบฎเบฑเบ N arguments.
=> (เบเบนเปเบเบฐเบเบญเบเบเบฒเบเบเปเบฒเปเบเบปเปเบฒ)
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (zipwith operator.add [1 2 3] [4 5 6]))
[5, 7, 9]
Reader เบกเบฒเปเบเบฃ
เบกเบฐเบซเบฒเบเบฒเบเบเบญเบเบเบนเปเบญเปเบฒเบเปเบซเป Lisp เบกเบตเบญเปเบฒเบเบฒเบเปเบเบเบฒเบเปเบเปเปเบเปเบฅเบฐเบเปเบฝเบเปเบเบ syntax เปเบเบเบฑเบเบเบต. เปเบเบปเปเบฒเบเปเปเบเปเบญเบเบเบฒเบ
เบซเบกเบฒเบเปเบซเบเปเบเปเบฅเบ? เบกเบฐเบซเบฒเบเบฒเบเบเบนเปเบญเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเบงเบเบฑเปเบเปเบเปเบขเปเบฒเบเบเปเบฒเบเบเบฒเบ. เบเปเบญเบเบเบฒเบเบงเบดเบเบตเบเบฒเบ Clojure เบเบญเบเบเบฒเบเบกเบต
regex? เบกเบฐเบซเบฒเบเบฒเบเบเบนเปเบญเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบชเบดเปเบเบเบตเปเปเบเปเบขเปเบฒเบเบเปเบฒเบเบเบฒเบ.
syntax
=> (defreader ^ [expr] (เบเบดเบก expr))
=> #^(1 2 3 4)
( 1 2 3 4 )
=> #^ "เบชเบฐเบเบฒเบเบเบต"
"เบชเบฐเบเบฒเบเบเบต"
=> #^1+2+3+4+3+2
1+2+3+4+3+2
Hy เบเปเปเบกเบตเบเบปเบงเบซเบเบฑเบเบชเบทเบชเปเบฒเบฅเบฑเบ tuples. เปเบซเปเปเบงเบปเปเบฒเบงเปเบฒเปเบเบปเปเบฒเบเปเปเบกเบฑเบ (, ... ) เปเบฅเบฐเบเปเบญเบเบเบฒเบเบญเบฑเบเบญเบทเปเบ. เบเบตเป
เปเบเบฑเบเบเบฑเบเบซเบฒเบเบตเปเบเบนเปเบญเปเบฒเบเบกเบฐเบซเบฒเบเบฒเบเบชเบฒเบกเบฒเบเปเบเปเปเบเปเบเปเบขเปเบฒเบเปเบเบฑเบเบฅเบฐเบเบฝเบ.
=> (defreader t [expr] `(, ~@expr))
=> #t(1 2 3)
(1, 2, 3)
เปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบกเบฑเบเบเบทเบเบฑเบ Clojure เปเบฅเบฐเบกเบตเบเบปเบงเบซเบเบฑเบเบชเบทเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเปเบเบฑเบเบเบปเบเบเบฐเบเบด!
=> (เบเปเบฒเปเบเบปเปเบฒเปเบซเบกเป)
=> (defreader r [expr] `(re.compile ~expr))
=> #r "*"
<_sre.SRE_Pattern object at 0xcv7713ph15#>
เบเบฒเบเบเบฐเบเบดเบเบฑเบ
เบเบนเปโเบฅเบฐโเปเบกเบตเบ เปเบเปเบเบปเบงเบญเบฑเบเบชเบญเบเบเบฝเบงเปเบเบฑเบเบเบทเปเบชเบฑเบเบเบฒเบฅเบฑเบเบชเปเบฒเบฅเบฑเบ macro เบเบนเปเบญเปเบฒเบ; เบซเบเบฑเบเบญเบตเบเปเบฅเปเบง
เบเบฐเบชเบปเปเบเบเบทเบเบเปเปเบเบดเบเบเบฒเบ. เบเบฒเบโเบเบฐโเบเบดโเบเบฑเบโเบขเปเบฒเบโเบชเบฐโเบซเบฅเบฒเบโ, เบเบนเปโเบฅเบฐโเปเบกเบตเบ เบเบฐเบซเบเบฒเบเปเบเบปเปเบฒเปเบเปเบ lambda เบเบตเปเบเบปเบเบเบธเบกเบเปเบงเบ a
เบญเบญเบเปเบเบ. เปเบเบทเปเบญเบเบเบปเบเปเบเปเบเบเบตเปเบเปเบงเบเบเบฐเบขเบฑเบ lambda เปเบเบงเบฑเบเบเบฐเบเบฒเบเบธเบเบปเบกเบเบตเปเบกเบตเบเบทเปเปเบกเบเบนเบเบเบญเบเบกเบฑเบเปเบฅเบฐ
เบชเบฑเบเบเบฒเบฅเบฑเบ.
=> (defreader ^ [expr] (เบเบดเบก expr))
;=> (with_decorator (hy.macros.reader ^) (fn [expr] (เบเบดเบก expr)))
# เบเบฐเบซเบเบฒเบเปเบเบปเปเบฒเปเบเปเบ (dispatch_reader_macro ... ) เบเปเบญเบเบเบตเปเบชเบฑเบเบเบฒเบฅเบฑเบเปเบฅเบฐเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเปเบกเปเบเบเบทเบเบชเบปเปเบเปเบเบซเบฒ
เบเบฒเบเบเปเบฒเบเบฒเบเบเบตเปเบเบทเบเบเปเบญเบ.
=> #^()
;=> (dispatch_reader_macro ^ ())
=> #^ "เบชเบฐเบเบฒเบเบเบต"
"เบชเบฐเบเบฒเบเบเบต"
เบเปเบฒเปเบเบทเบญเบ:
เปเบเบทเปเบญเบเบเบฒเบเบเปเปเบเปเบฒเบเบฑเบเปเบ lexer เปเบฅเบฐ parser เบเบญเบ Hy, macro เบเบนเปเบญเปเบฒเบเบเปเปเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบทเบเปเบซเบกเปเปเบเป.
syntax เปเบเบฑเปเบ ()[]{}. เบญเบฑเบเบเบตเปเบชเปเบงเบเบซเบผเบฒเบเบญเบฒเบเบเบฐเบเบทเบเปเบเปเปเบเปเบเบญเบฐเบเบฒเบเบปเบ.
เบเบฒเบเปเบ Hy เปเบญโเบเบฐโเบชเบฒเบ
เบซเบกเบฒเบโเปเบซเบโ:
bits เปเบซเบผเบปเปเบฒโเบเบตเปโเปเบกเปเบโเบชเปเบงเบโเปเบซเบเปโเปเบกเปเบโเปเบเบฑเบโเบเบฐโเปเบซเบเบโเบชเปเบฒโเบฅเบฑเบโเบเบปเบโเบเบตเป hack เบชเบธเบ Hy เบเบปเบงโเบเบญเบโเบกเบฑเบโเปเบญเบ, เปเบเปโเบเบฑเบโเบชเบฒโเบกเบฒเบโเบเบทเบโเบเปเบฒโเปเบเปโเบชเปเบฒโเบฅเบฑเบ
เปเบซเบผเบปเปเบฒเบเบฑเปเบ delving deeper เปเบเปเบเบเบเบฒเบเบกเบฐเบซเบฒเบเบฒเบ.
Hy เปเบเบเบเปเบฒเบฅเบญเบ
เบเบฒเบเบเปเบฒเบชเบฐเปเบซเบเบต to Hy เปเบเบเบเปเบฒเบฅเบญเบ
เบฎเบนเบเปเบเบ Hy เปเบกเปเบเบเบฑเปเบเบเบฒเบเปเบขเบนเปเปเบเบดเบเบชเบธเบเบเบญเบเบงเบฑเบเบเบธ Python เบเบปเบเบเบฐเบเบด, เปเบเบดเปเบเปเบเบฑเบเบเบปเบงเปเบเบเบเบญเบเปเบซเบผเปเบ Hy
เบฅเบฐโเบซเบฑเบโเปเบเบฑเบโเบเปเปโเบกเบนเบโ. เบเบปเบงเปเบเบเบเบฝเบเปเบเปเปเบเบตเปเบกเบเปเปเบกเบนเบเบเปเบฒเปเบซเบเปเบเปเบซเบผเปเบ, เปเบฅเบฐเบงเบดเบเบตเบเบฒเบเบเปเบฒเบเบงเบเบซเบเปเบญเบเบซเบเบถเปเบ
เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเบซเบกเบนเบเปเบเปเบเบตเปเบชเบฐเบญเบฒเบเบเบญเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบ Hy, เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบเปเบเบกเบฐเบซเบฒเบเบฒเบ. เปเบเบทเปเบญเบเบฑเบเบฅเบธเปเบเป
เปเบเบปเปเบฒเปเบฒเบ, เบฎเบนเบเปเบเบ Hy เปเบกเปเบ mixins เบเบญเบเบเบฑเปเบ Python เบเบทเปเบเบเบฒเบ เปเบฅเบฐ HyObject.
HyObject
hy.models.HyObject เปเบกเปเบเบเบฑเปเบเบเบทเปเบเบเบฒเบเบเบญเบเปเบเบ Hy. เบกเบฑเบเบเบฝเบเปเบเปเบเบฐเบเบดเบเบฑเบเบงเบดเบเบตเบเบฒเบเบซเบเบถเปเบ, เบเบปเบเปเบเบ,
เปเบเบดเปเบเปเบเบเบเบตเปเบเปเบฒเปเปเปเบเปเบซเบผเปเบเบเบญเบเบงเบฑเบเบเบธเบเบฑเบเบเบธเบเบฑเบเบเปเบงเบเบญเบฑเบเบเบตเปเบเปเบฒเบเปเบเบฑเบ argument.
เบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเบเบดเบเบเบฒเบกเบเปเบฒเปเบซเบเปเบเบเบปเปเบเบชเบฐเบเบฑเบเบเบญเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบตเปเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเบเปเบเปเปเบเบ
macro, เบเปเปเบงเปเบฒเบเบฐเบขเบนเปเปเบ compiler เบซเบผเบทเปเบ macro hy เบเปเบฅเบดเบชเบธเบ.
HyObject เบเปเปเปเบเปเบกเบตเบเบธเบเบเบฐเบชเบปเบเปเบเบทเปเบญเบเบทเบเบเปเบฒเปเบเปเปเบเบเบเบปเบเบเบฑเบเบเบปเบงเปเบเบ Hy, เปเบเปเบเบฝเบเปเบเปเปเบเบฑเบ mixin
เบชเปเบฒเบฅเบฑเบเบซเปเบญเบเบฎเบฝเบเบญเบทเปเบเป.
เบชเบปเบกเบเบปเบ เปเบเบเบเปเบฒเบฅเบญเบ
เบฅเบฒเบเบเบทเปเบงเบปเบเปเบฅเบฑเบ เปเบฅเบฐเบงเบปเบเปเบฅเบฑเบเบเบทเบเบงเบดเปเบเบฒเบฐเปเบเบฑเบเบเบปเบงเปเบเบเบเบฐเบชเบปเบกเปเบเบ Hy parser.
HyList
hy.models.list.HyList เปเบกเปเบเบเบฑเปเบเบเบทเปเบเบเบฒเบเบเบญเบเปเบเบ Hyterable "เบกเบฑเบ". เบเบฒเบเบเปเบฒเปเบเปเบเบทเปเบเบเบฒเบเบเบญเบเบกเบฑเบเปเบกเปเบเปเบเบทเปเบญ
เปเบเบฑเบเบเบปเบงเปเบเบเบเบญเบเบงเบปเบเปเบฅเบฑเบ [] lists, เปเบเบดเปเบ, เปเบกเบทเปเบญเปเบเปเปเบเบฑเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเปเบเบฅเบฐเบเบฑเบเบชเบนเบเบชเบธเบ, เปเบเปเบเบฑเบ
Python เบฅเบฒเบเบเบทเปเบเบปเบงเบซเบเบฑเบเบชเบทเปเบเปเบฅเบเบฐเบเบฒเบเบฅเบงเบเบฅเบงเบก.
เบเบฒเบเปเบเบตเปเบก HyList เปเบซเปเบเบฑเบเบงเบฑเบเบเบธเบเบตเปเปเบฎเบฑเบเปเบเปเบเปเปเบฒเบเบฑเบเบญเบตเบเบเบฐเปเบเป class เบเบญเบเบงเบฑเบเบเบธเบเปเบฒเบเบเปเบฒเบเบกเบทเบเบทเบเปเปเป,
เบเบถเบเบเบดเบเปเบฒเบเบตเปเปเบเบฑเบเบเบฐเปเบซเบเบเปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเบเบเปเบญเบเบเบฒเบ concatenate Hy objects เปเบ macro, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ.
HyExpression
hy.models.expression.HyExpression เบกเบนเบเบกเปเบฅเบฐเบเบปเบ HyList เบชเปเบฒเบฅเบฑเบเบงเบปเบเปเบฅเบฑเบ () เบเบฒเบเบชเบฐเปเบเบเบญเบญเบ. เปเบเป
เบเบปเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเบญเบเบชเบณเบเบงเบเปเบซเบผเบปเปเบฒเบเบฑเปเบเปเบกเปเบเบเบถเปเบเบเบฑเบเบญเบปเบเบเบฐเบเบญเบเบเบณเบญเบดเบเบเบญเบเบฅเบฒเบเบเบฒเบ: the
compiler เบชเบปเปเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบฅเบฐเบซเบงเปเบฒเบ compiler เปเบเบเบเบญเบกเบเบดเปเบชเบ, macros เบเบตเปเบเปเบฒเบเบปเบเปเบเบเบเบนเปเปเบเป, เปเบฅเบฐ
เบเบฒเบเปเบเบเบฑเบเบเบฑเบ Python เบเบปเบเบเบฐเบเบด.
HyDict
hy.models.dict.HyDict เบกเบนเบเบกเปเบฅเบฐเบเบปเบ HyList เบชเปเบฒเบฅเบฑเบ curly-blocked {} เบเบฒเบเบชเบฐเปเบเบเบญเบญเบ, เปเบเบดเปเบเบฅเบงเบเบฅเบงเบก
เบฅเบปเบเปเบเบซเบฒเบงเบฑเบเบเบฐเบเบฒเบเบธเบเบปเบก Python เบเบตเปเบฎเบนเปเบซเบเบฑเบเบชเบท.
เบเบฒเบเบเบฑเบเบชเบดเบเปเบเบเบญเบเบเบฒเบเบเปเบฒเปเบเปเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเปเบเบเบเบตเปเบเบฐเปเบเบฑเบ dict เปเบเบฑเบเบซเปเบญเบเบฎเบฝเบเบเบทเปเบเบเบฒเบเบชเปเบฒเบฅเบฑเบ HyDict เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบเบถเปเบ
เบเบฒเบเบซเบกเบนเบเปเบเปเบเบญเบ dicts เปเบเบกเบฐเบซเบฒเบเบฒเบ, เบกเบตเบเบปเบเบเบฐเปเบซเบเบเปเบเบตเปเบกเปเบเบตเบกเบเบญเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบชเปเบฒเบเบงเบเบเบฐเบชเบปเบก
เปเบเบฑเบ dict keys (เปเบเบฑเบ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, the HyExpression เบซเปเบญเบเบฎเบฝเบ Python เปเบกเปเบเบเปเปเบชเบฒเบกเบฒเบ hashable).
เบเบฐเบฅเปเบฒเบกเบฐเบเบน เปเบเบเบเปเบฒเบฅเบญเบ
เปเบเบเบฐเปเบชเบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบ, เบชเบฐเบเบฃเบดเบเบเบตเปเบญเปเบฒเบเบญเบตเบเบชเบญเบเปเบเบทเปเบญ, เปเบเบเปเบเบปเบฒเบฅเบปเบเปเบฒเบเปเบซเบ Python เบชเบณเบฅเบฑเบเบชเบฐเบเบฃเบดเบ,
เบเบทเบเปเบเบเบงเบดเปเบเบฒเบฐเปเบเบฑเบเปเบเปเบเบฑเบเบเบฝเบง, เปเบเบดเปเบเบเบทเบเบงเบดเปเบเบฒเบฐเปเบเบเบเบปเบเปเบเบฑเบ a HyString.
เบเบปเบงเบญเบฑเบเบชเบญเบเบเบตเปเบเปเปเบเบดเบเบเบฑเบ, เบเปเปเบฅเบงเบกเปเบญเบปเบฒเบเบฐเบซเบงเปเบฒเบ, เบงเบปเบเปเบฅเบฑเบ, เบงเบปเบเบขเบทเบก, เบงเบปเบเบขเบทเบกเบเบนเป
เปเบฅเบฐเบเปเบฒเบเบดเบเปเบซเบฑเบ, เบเบทเบเบงเบดเปเบเบฒเบฐเปเบเบฑเบเบเบปเบงเบฅเบฐเบเบธ.
เบเบปเบงเบฅเบฐเบเบธเบเบทเบเปเบเปเปเบเปเบเบฑเบเปเบเบเบเบณเบฅเบญเบเบเบฐเบฅเปเบฒเบกเบฐเบเบนเปเบเบฅเบฐเบซเบงเปเบฒเบเปเบฅเบเบฐเบเบฒเบเปเบเบเบงเบดเปเบเบฒเบฐเบเบฒเบกเบฅเบณเบเบฑเบเบเปเปเปเบเบเบตเป:
ยท HyInteger
ยท HyFloat
ยท HyComplex (เบเปเบฒเบเบฐเบฅเปเบฒเบกเบฐเบเบนเบเปเปเปเบกเปเบเปเบเบปเปเบฒ j)
ยท HyKeyword (เบเปเบฒเบเบฐเบฅเปเบฒเบกเบฐเบเบนเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบ :)
ยท เบชเบฑเบเบเบฒเบฅเบฑเบ
HyString
hy.models.string.HyString เปเบกเปเบเบเบฑเปเบเบเบทเปเบเบเบฒเบเบเบญเบเปเบเบเบชเบฐเบเบฃเบดเบเบเบฝเบเปเบเบปเปเบฒ Hy. เบกเบฑเบเบเบฑเบ
เปเบเบฑเบเบเบปเบงเปเบเบเบเบญเบเบเบปเบงเปเบฑเบเบชเบทเบชเบฐเบเบฃเบดเบเบเบตเปเบญเปเบฒเบเบญเบตเบเบชเบญเบเปเบเบปเปเบฒ, "", เปเบเบดเปเบเบฅเบงเบเบฅเบงเบกเบฅเบปเบเปเบเบฑเบ unicode string
เบเบปเบงเปเบฑเบเบชเบทเปเบ Python. HyStrings เบชเบทเบเบเบญเบเบงเบฑเบเบเบธ unicode เปเบ Python 2, เปเบฅเบฐ string objects เปเบ
Python 3 (เปเบฅเบฐเบเบฑเปเบเบเบฑเปเบเบเบถเปเบเบเปเปเบเบถเปเบเบเบฑเบเบเบฒเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบ).
HyString เบฎเบนเบเปเบเบเบเบทเปเบเบเบฒเบเปเบกเปเบเบเปเปเบชเบฒเบกเบฒเบเบเปเบฝเบเปเบเบเปเบเป.
เบชเบฐเบเบฃเบดเบเบเบปเบงเปเบฑเบเบชเบท Hy เบชเบฒเบกเบฒเบเบเบฐเบซเบเบฒเบเปเบเปเบซเบผเบฒเบเบชเบฒเบ, เปเบฅเบฐเบเบทเบเบเบดเบเบฒเบฅเบฐเบเบฒเปเบเบเบเบปเบงเบงเบดเปเบเบฒเบฐเปเบเบฑเบเบชเบฒเบเบเบฝเบง
เบซเบเปเบงเบเบเปเบฅเบดเบเบฒเบ, เปเบเบปเบฒเบฅเบปเบ Python escapes เบชเปเบฒเบฅเบฑเบ unicode strings.
Numeric เปเบเบเบเปเบฒเบฅเบญเบ
hy.models.integer.HyInteger เปเบเบฑเบเบเบปเบงเปเบเบเบเบญเบเบเบปเบงเปเบฑเบเบชเบทเบเบณเบเบงเบเปเบเบฑเบก (เปเบเบเปเบเป เบเบฒเบง เบเบดเบกเบขเบนเปเปเบ Python 2,
เปเบฅเบฐ int เปเบ Python 3).
hy.models.float.HyFloat เปเบเบฑเบเบเบปเบงเปเบเบเบเบญเบเบเบปเบงเปเบฑเบเบชเบทเบเบธเบเบฅเบญเบ.
hy.models.complex.HyComplex เปเบเบฑเบเบเบปเบงเปเบเบเบเบญเบเบเบปเบงเบซเบเบฑเบเบชเบทเบเบตเปเบชเบฑเบเบชเบปเบ.
เปเบกเปเบเบงเบเบปเบงเปเบฅเบเบเบทเบเปเบเบเบงเบดเปเบเบฒเบฐเปเบเบเปเบเป Python routine เบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบ, เปเบฅเบฐ python เบเบปเบงเปเบฅเบเบเบตเปเบเบทเบเบเปเบญเบ
เบเบปเบงเปเบฑเบเบชเบทเบเบฐเบเบทเบเบเปเบฝเบเปเบเบฑเบ Hy เบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒ.
เบชเบฑเบเบเบฒเบฅเบฑเบ
hy.models.symbol.HySymbol เปเบกเปเบเบเบปเบงเปเบเบเบเบตเปเปเบเปเปเบเบทเปเบญเปเบเบฑเบเบเบปเบงเปเบเบเบเบญเบเบชเบฑเบเบเบฒเบฅเบฑเบเปเบเบเบฒเบชเบฒ Hy. เบกเบฑเบ
เบกเบนเบเบกเปเบฅเบฐเบเบปเบ HyString.
เบชเบฑเบเบเบฒเบฅเบฑเบ เบงเบฑเบเบเบธเบเบทเบเบเบปเบเปเบเบทเปเบญเบเบขเบนเปเปเบเบเบฑเปเบเบเบญเบเบเบฒเบเปเบเบเบงเบดเปเบเบฒเบฐ, เปเบเบทเปเบญเบเปเบงเบเปเบซเปเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบฎเปเบงเบกเบเบฑเบเบเบญเบ Python:
ยทเบชเบฑเบเบเบฒเบฅเบฑเบเบเบตเปเบญเปเบญเบกเบฎเบญเบเบเปเบงเบเบเบฒเบง (*) เบเบทเบเบเปเบฝเบเปเบเบฑเบเบเบปเบงเบเบดเบกเปเบซเบเป;
ยท เบเบตเบเบเปเป (-) เบเบทเบโเบเปเบฝเบโเปเบเบฑเบโเบเบตเบโเบเปเบญเบ (_);
ยท เบซเบเบถเปเบโเปเบเบทเปเบญเบโเบซเบกเบฒเบโเบเปเบฒโเบเบฒเบกโเบเปเปโเบซเบเปเบฒ (?) เปเบเปโเบเบฒเบโเปเบเบฑเบโเบเบฒเบโเบเปเบฒโ เปเบกเปเบ_.
Caveat: เปเบเบฑเบ mangling เปเบกเปเบเปเบฎเบฑเบเปเบเปเปเบเปเบฅเบเบฐ parsing, เบกเบฑเบเปเบเบฑเบเปเบเปเบเป
เปเบเบฃเปเบเบกเบชเปเบฒเบ HySymbols เบเบตเปเบเปเปเบชเบฒเบกเบฒเบเบชเปเบฒเบเบเปเบงเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบ Hy. เบเบฑเปเบเบเปเบฒเบงเปเบเบฑเบ
เบเบปเบเปเบเบเบทเบเบเปเบฒเปเบเปเปเบเบ gensym เปเบเบทเปเบญเบชเปเบฒเบเบชเบฑเบเบเบฒเบฅเบฑเบ "uninterned".
HyKeyword
hy.models.keyword.HyKeyword เปเบเบฑเบเบเบปเบงเปเบเบเบเบญเบเบเปเบฒเบชเปเบฒเบเบฑเบเปเบ Hy. เบเปเบฒเบชเปเบฒเบเบฑเบเปเบกเปเบเบชเบฑเบเบเบฒเบฅเบฑเบเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบ
a :. เบซเปเบญเบเบฎเบฝเบเบชเบทเบเบเบญเบ HyString.
เปเบเบทเปเบญ เบเบณ เปเบเบ HyKeywords เบเบฒเบ เบชเบฑเบเบเบฒเบฅเบฑเบ, เปเบเบโเบเปเปโเบกเบตโเบเบงเบฒเบกโเปเบเบฑเบโเปเบโเปเบเปโเบเบญเบ (เบเปเปโเบชเบฐโเบซเบกเบฑเบโเปเบโ)
เบเบฒเบเบเบฐเบเบฐเบเบฑเบ, เบฅเบฑเบเบชเบฐเบเบฐเบชเปเบงเบเบเบปเบงเบเบตเปเปเบเป unicode "\uFDD0" เปเบกเปเบ prepended เบเบฑเบเบเปเบฒเบเบตเปเบฎเบนเปเบซเบเบฑเบเบชเบท
เบเปเบญเบเบเบตเปเบเบฐเปเบเบฑเบเบฎเบฑเบเบชเบฒ.
cons เบเบธเบฅเบฑเบ
hy.models.cons.HyCons เปเบเบฑเบเบเบปเบงเปเบเบเบเบญเบ Python-friendly cons เบเบธเบฅเบฑเบ. เบเบธเบฅเบฑเบ cons เปเบกเปเบ
เปเบเบเบชเบฐเปเบเบฒเบฐเปเบกเปเบเปเบเบฑเบเบเบฐเปเบซเบเบเปเบเบทเปเบญเปเบฎเบฑเบเบเบฒเบกเบฅเบฑเบเบชเบฐเบเบฐเบเบญเบเบเบปเบงเปเบ LISP "เบเบปเบเบเบฐเบเบด" เปเบเบฑเปเบ Scheme เบซเบผเบท Common
เบฅเบตเบช.
เปเบเบฅ cons เปเบกเปเบเบงเบฑเบเบเบธ 2 เบฅเบฒเบเบเบฒเบ, เบเบฐเบเบญเบเบกเบต a เบฅเบปเบ (เบซเบปเบง) เปเบฅเบฐ เบ cdr (เบซเบฒเบ). เปเบเบเบฒเบ Lisp
variants, เบเบธเบฅเบฑเบ cons เปเบกเปเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบทเปเบเบเบฒเบ, เปเบฅเบฐ S-expressions เปเบกเปเบเบเบปเบงเบเบดเบเปเบฅเปเบง
เปเบเบฑเบเบเบปเบงเปเบเบเปเบเบฑเบเบฅเบฒเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบญเบเบเบธเบฅเบฑเบ cons. เบเบตเปเบเปเปเปเบกเปเบเบเปเบฅเบฐเบเบตเปเบ Hy, เบเบฒเบกเบเบปเบเบเบฐเบเบด
เบเบฒเบเบชเบฐเปเบเบเบญเบญเบเปเบกเปเบเปเบฎเบฑเบเบเบฒเบเบฅเบฒเบเบเบทเป Python เบซเปเปเบเปเบงเบ a HyExpressionเบเบตเปเบขเบนเป เบขเปเบฒเบเปเบเบเปเปเบเบฒเบก, เปเบเป HyCons
mimics เบเบถเบเบเบดเบเปเบฒเบเบญเบเบเบปเบงเปเบ Lisp "เบเบปเบเบเบฐเบเบด" เบเบฑเปเบเบเบฑเปเบ:
ยท (เบเปเปเปเบชเบ เบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบ nil) is (HyExpression [เบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบ])
ยท (เบเปเปเปเบชเบ เบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบ เบเบฒเบเบฅเบฒเบเบเบฒเบ) is ((เบเบฐเปเบเบ เบเบฒเบเบฅเบฒเบเบเบฒเบ) (+ [เบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบ] เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบฒเบ)) (if
เบเบฒเบเบฅเบฒเบเบเบฒเบ เบชเบทเบเบเบญเบเบกเบฒเบเบฒเบ เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป).
ยท (เปเบเปเบฎเบฑเบ (เบเปเปเปเบชเบ a b) 0) is a
ยท (เบเบญเบ (เบเปเปเปเบชเบ a b) 1) is b
Hy เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ syntax เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป dotted, เบเปเบญเบเบเบตเป '(เบ . b) เบงเบดเบเบตเบเบฒเบ (เบเปเปเปเบชเบ 'a 'เบ) เปเบฅเบฐ '(เบ b . c) เบงเบดเบเบตเบเบฒเบ
(เบเปเปเปเบชเบ 'a (เบเปเปเปเบชเบ 'b 'เบ)). เบเปเบฒ compiler เบเบปเบ cell cons เปเบเบฅเบฐเบเบฑเบเบชเบนเบเบชเบธเบ, เบกเบฑเบเปเบเบตเปเบกเบเบถเปเบ
เบเบฒเบเบฅเบงเบเบฅเบงเบกเบเบงเบฒเบกเบเบดเบเบเบฒเบ.
HyCons wraps เบเบฒเบโเปเบเปโเบเบฝเบโเบเปเบฒเบโเบเบฒเบ (เบฅเบปเบโเปเบฅเบฐ cdrโ) เปเบโเบเบฐโเปเบเบ Hyโ, เปเบเบทเปเบญโเบเปเบฒเบโเบเบฒเบโเบเบฒเบโเบซเบกเบนเบโเปเบเปโเบเบญเบโ
เปเบเบฅ cons เปเบเบเปเบฅเบดเบเบปเบเบกเบฐเบซเบฒเบเบฒเบ.
Hy เบเบฒเบเปเบ เบเบดเบเบชเบฐเบเบต
เบเบฒเบเบฅเบงเบก
เบเบฒเบเปเบ Hy เปเบฎเบฑเบเบงเบฝเบเปเบเบเบเบฒเบเปเบฎเบฑเบเบซเบเปเบฒเบเบตเปเปเบเบฑเบเบเบปเบงเบเปเปเบซเบเปเบฒเบเบญเบ Python bytecode, เบเบฑเปเบเบเบฑเปเบ Hy เบเบปเบงเบเบญเบเบกเบฑเบเปเบญเบ
เบฅเบงเบเบฅเบงเบกเบฅเบปเบเปเบเบฑเบ Python Bytecode, เบญเบฐเบเบธเบเบฒเบเปเบซเป runtime Python เบเบตเปเบเปเปเบกเบตเบเบฒเบเบเบฑเบเปเบเปเปเบเบทเปเบญเปเบฅเปเบเบฅเบฐเบซเบฑเบ Hy,
เปเบเบเบเปเปเปเบเปเบชเบฑเบเปเบเบเปเบซเบฑเบเบกเบฑเบ.
เบงเบดเบเบตเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบเบเบตเปเปเบกเปเบเปเบเบเบเบฒเบเปเบ Hy เปเบเบปเปเบฒเปเบเปเบเปเบเบเบชเปเบฒเบเบเปเปเบกเบนเบเบเบฒเบเปเบ Python AST, เปเบฅเบฐ
เบเบฒเบเบชเปเบฒเบ AST เปเบเบปเปเบฒเปเบเปเบ Python bytecode เปเบเบเปเบเปเปเบกเบเบนเบเบเบฒเบเบกเบฒเบเบเบฐเบเบฒเบ Python
เบซเปเบชเบฐเบซเบกเบธเบ, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเปเปเบฒเบเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบ Python เบเบฒเบเปเบเบชเปเบฒเบฅเบฑเบเบเบธเบเป
เบเบฒเบเบเปเบญเบ Python เบเบฝเบง.
Hy เปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเบชเบตเปเบเบฑเปเบเบเบญเบ. เบเบฒเบเบชเปเบงเบเบเปเปเปเบเบเบตเปเบเบฐเบเบงเบกเปเบญเบปเบฒเปเบเปเบฅเบฐเบเบฑเปเบเบเบญเบเบเบญเบ Hy เบเบฒเบเปเบซเบผเปเบเปเบเบซเบฒ
เปเบงเบฅเบฒเปเบฅเปเบ.
เบเบฑเปเบเบเบญเบ 1 เปเบฅเบฐ 2: Tokenizing เปเบฅเบฐ เบเบณ เบฅเบฑเบเบเบฑเบเปเบฎเบทเบญ
เบเบฑเปเบเบเบญเบเบเปเบฒเบญเบดเบเบเบญเบเบเบฒเบเบฅเบงเบเบฅเบงเบก Hy เปเบกเปเบเปเบเบทเปเบญ lex เปเบซเบผเปเบเปเบเบปเปเบฒเปเบเปเบ tokens เบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเบฑเบเบเบฒเบเบเบฑเบ. เบเบงเบเปเบฎเบปเบฒ
เปเบเปเปเบเบเบเบฒเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒ rply, เปเบเบดเปเบเปเบเบฑเบเบเบปเบงเบงเบดเปเบเบฒเบฐเบเบตเปเบเบฒเบก (เปเบฅเบฐเปเบง), เบเบฝเบเปเบเบฑเบเบเบธเบเบเปเบญเบ
เบเบญเบ Python เปเบญเบตเปเบเบงเปเบฒ rpython.
เบฅเบฐเบซเบฑเบ lexing เปเบกเปเบเบเบทเบเบเปเบฒเบเบปเบเปเบงเปเบเบฑเบเบซเบกเบปเบเปเบ hy.lex.lexer. เบฅเบฐเบซเบฑเบเบเบตเปเบชเปเบงเบเบซเบผเบฒเบเปเบกเปเบเบเบฝเบเปเบเปเบเปเบฒเบเบปเบ Hy
เปเบงเบเบฐเบเบญเบ, เปเบฅเบฐเบเบธเบเบเบฒเบเบชเปเบงเบเบเบตเปเบเบฒเบเบเบตเปเปเบเปเบเบดเบเปเบเปเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเบ rply - เบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเปเบเปเบฒเบเบปเบ
"callbacks" เบชเปเบฒเบฅเบฑเบ rply เปเบ hy.lex.parser, เปเบเบดเปเบเปเบเปเปเบงเบฅเบฒ tokens เบเบตเปเบชเปเบฒเบเบเบถเปเบ, เปเบฅเบฐเบชเบปเปเบเบเบทเบ
เปเบเบ Hy.
เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบดเบเบงเปเบฒเบเบปเบงเปเบเบ Hy เปเบเบฑเบ "AST" เบชเปเบฒเบฅเบฑเบ Hy, เบกเบฑเบเปเบกเปเบเบชเบดเปเบเบเบตเป Macros เบเปเบฒเปเบเบตเบเบเบฒเบ
(เปเบเบเบเบปเบ), เปเบฅเบฐเบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบเบตเป compiler เปเบเปเปเบเปเบงเบฅเบฒเบเบตเปเบกเบฑเบเบฅเบงเบเบฅเบงเบก Hy เบฅเบปเบ.
เปเบเบดเปเบ เบเบฑเบ:
เบชเปเบงเบ Hy เปเบเบเบเปเบฒเบฅเบญเบ เบชเปเบฒเบฅเบฑเบเบเปเปเบกเบนเบเปเบเบตเปเบกเปเบเบตเบกเบเปเบฝเบงเบเบฑเบ Hy model เปเบฅเบฐเบชเบดเปเบเบเบตเปเบเบงเบเปเบเบปเบฒเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒ.
เบเบฑเปเบโเบเบญเบ 3: Hy เบเบฒเบเบฅเบงเบเบฅเบงเบก to Python AST
เบเบตเปเปเบกเปเบเบเปเบญเบเบเบตเป magic เบชเปเบงเบเปเบซเบเปเปเบ Hy เปเบเบตเบเบเบถเปเบ. เบเบตเปเปเบกเปเบเบเปเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบญเบปเบฒ Hy AST (เบเบปเบงเปเบเบ),
เปเบฅเบฐเบฅเบงเบเบฅเบงเบกเบเบงเบเบกเบฑเบเปเบเบปเปเบฒเปเบเปเบ Python AST. เบชเบญเบเบชเบฒเบกเบชเบดเปเบเบเบตเปเบเบตเปเบเปเบฒเบเปเบเบตเบเบเบถเปเบเบขเบนเปเบเปเบญเบเบเบตเปเปเบเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเบเปเบฒเบเบกเบฒเบชเบญเบเบชเบฒเบกเบขเปเบฒเบ
เบเบฑเบเบซเบฒเปเบ AST, เปเบฅเบฐเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบ compiler เปเบกเปเบเบเบฒเบเบงเบฝเบเบเบตเปเบชเปเบฒเบเบฑเบเบเบตเปเบชเบธเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบ
เบกเบต.
compiler เปเบกเปเบเบชเบฑเบเบชเบปเบเปเบฅเบฑเบเบเปเบญเบ, เบชเบฐเบเบฑเปเบเบขเปเบฒเบฎเบนเปเบชเบถเบเบเปเปเบเบตเบเปเบฒเบเปเบฒเบเบเปเปเปเบฎเบฑเบเบกเบฑเบเปเบเบเบฒเบเบชเบฑเบเบขเบฒเบเบฑเปเบเบเปเบฒเบญเบดเบ,
เบกเบฑเบเบญเบฒเบเบเบฐเปเบเปเปเบงเบฅเบฒเปเบฅเบฑเบเบเปเบญเบเปเบเบทเปเบญเปเบซเปเบเบทเบเบเปเบญเบ.
เบเบธเบเปเบเบปเปเบฒเบเบปเปเบเบเปเบเบญเบ Compiler เปเบกเปเบ HyASTCompiler.compile. เบงเบดเบเบตเบเบฒเบเบเบตเปเปเบกเปเบ invoked, เปเบฅเบฐ
เบงเบดเบเบตเบเบฒเบ "เบชเบฒเบเบฒเบฅเบฐเบเบฐ" เบเบตเปเปเบเปเบเบดเบเบเบฝเบเปเบเปเบขเบนเปเปเบเบซเปเบญเบเบฎเบฝเบ (เบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒ, เบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเบชเบฑเบเบเบฒเบขเปเบฒเบเปเบเปเบเบดเบ
API เบเบญเบโเบเบฒเบโเบงเบดโเบเบตโเบเบฒเบโเบเบตเปโ)โ.
เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบฒเบเปเบ, เบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเบเบฐเบเบดเปเบชเบเปเบเบเบเบปเบ, เบเบงเบเปเบฎเบปเบฒเปเบเบทเบญเบเบชเบฐเปเบซเบกเบตเบเบฑเบเบเบฑเบ
เบเบปเปเบเปเบกเป Hy เบเปเบฒเบ เบฅเบงเบเบฅเบงเบก, เปเบฅเบฐเบกเบฑเบเบเบฐเปเบฎเบฑเบเบชเบดเปเบเบเบตเปเบเปเบงเบเบญเบปเบเบเบฐเบเบญเบเบเปเบญเบเบเบญเบเบเบฒเบเบชเบฐเปเบเบเบเบปเบ
เบเบตเปเบเบงเบเปเบฎเบปเบฒเบกเบต. เบกเบฑเบเบเบถเปเบเบเบฑเบเบเบนเปเบชเบปเปเบเบเปเปเบเบฐเปเบเบเปเบเบทเปเบญเบชเบปเปเบเบญเบปเบเบเบฐเบเบญเบเบเปเบญเบเบขเปเบฒเบเบเบทเบเบเปเบญเบ.
เบงเบดเบเบตเบเบฒเบเบเบฑเบเบซเบกเบปเบเบเบตเป preform เบเบฒเบเบฅเบงเบเบฅเบงเบกเปเบกเปเบเบซเบกเบฒเบเบเปเบงเบ @builds() เบญเบญเบเปเบเบ. เปเบเบปเปเบฒโเบชเบฒโเบกเบฒเบ
เบเปเปเบงเปเบฒเบเบฐเบเปเบฒเบเบซเปเบญเบเบฎเบฝเบเบเบญเบเบฎเบนเบเปเบเบ Hy เบเบตเปเบกเบฑเบเบฅเบงเบเบฅเบงเบก, เบซเบผเบทเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเป string เบชเปเบฒเบฅเบฑเบ
เบเบฒเบเบชเบฐเปเบเบเบญเบญเบ. เบเปเบญเบเบเบฐเบฅเบถเบเบกเบฑเบเบญเบญเบเปเบเบงเบดเบเบฒเบเบต.
เบซเบเปเบฒโเบเปเบฒโเบญเบดเบ เบเบฑเปเบเบเบญเบเบเบญเบเบเบฒเบ เบเบฐเปเบเบเบเบฒเบเบเบฑเบเบชเบปเปเบ
เปเบซเปเปเบฅเบตเปเบกเบเบปเปเบเปเบ เบฅเบงเบเบฅเบงเบก เบงเบดเบเบตเบเบฒเบ. เบชเบดเปเบเบเปเบฒเบญเบดเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบเปเบกเปเบเบเบงเบเปเบเบดเปเบเบเบฐเปเบเบเบเบญเบเบชเบดเปเบเบเบฑเปเบ
เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเบเปเปเบชเปเบฒเบ. เบเบงเบโเปเบฎเบปเบฒโเบเบญเบโเบซเบฒโเปเบเบดเปเบโเบงเปเบฒโเบเบงเบโเปเบฎเบปเบฒโเบกเบตโเบงเบดโเบเบตโเบเบฒเบโเบเบตเปโเบชเบฒโเบกเบฒเบโเบชเปเบฒเบโเปเบเปโ เบเบฐเปเบเบ() เบงเปเบฒเบเบงเบเปเบฎเบปเบฒ
เบกเบต, เปเบฅเบฐเบชเบปเปเบเบเบฑเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบชเบฒเบกเบฒเบเบเบฑเบเบเบฒเบเบเบฑเบเบกเบฑเบเปเบเป. เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเปเบกเบตเบงเบดเบเบตเบเบฒเบเปเบเปเบเบตเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเป
เบเบฒเบเบเปเปเบชเปเบฒเบเบเบฐเปเบเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบปเบเบชเบนเบเบเบปเบเบเบฒเบเบเบฒเบเปเบ เบเปเปโเบเบปเบโเปเบงเบฑเปเบ.
เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบกเบต a HyString, เบเบงเบเปเบฎเบปเบฒเบกเบตเปเบเบเบเบตเปเปเบเบทเบญเบ 1 เบเปเป 1 เบเบญเบ Hy AST เบเบฑเบ Python
AST. เปเบเป compile_string เบงเบดเบเบตเบเบฒเบเปเบเปเปเบงเบฅเบฒ HyString, เปเบฅเบฐเบชเบปเปเบเบเบทเบเปเบเบฑเบ ast.Str() เบเบฑเปเบเปเบกเปเบ
เบเบทเปเบกเบเปเปเบกเบนเบเปเบชเปเบเปเบงเบเบเบปเบงเปเบฅเบ เปเบฅเบฐ เปเบเบทเปเบญเปเบเบเบตเปเบเบทเบเบเปเบญเบ.
เบเบฐเบซเบเบฒเบเบกเบฐเบซเบฒเบเบฒเบ
เบเปเบฒเบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบ a HyExpression, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฐเบเบฒเบเบฒเบกเปเบเบดเปเบเบงเปเบฒเบเบตเปเปเบกเปเบ Macro เบเบตเปเบฎเบนเปเบเบฑเบ, เปเบฅเบฐเบเบธเบเบเบนเปเปเบซเปเบกเบต
เบกเบฑเบเบเบฐเบซเบเบฒเบเบญเบญเบเปเบเบเบเบฒเบเบฎเบฝเบเบฎเปเบญเบ hy.macros.macroexpand, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบนเปเบเบปเบเปเบเปเบฎเบฑเบเบเบฑเบเบเบทเบเปเบเบเปเบญเบเปเบเบปเปเบฒเปเบเปเบ
HyASTCompiler.compile.
เบเบฑเปเบเบเบตเบชเบญเบ เบเบฑเปเบเบเบญเบเบเบญเบเบเบฒเบ เบเบฒเบเบชเบฐเปเบเบเบญเบญเบ-เบเบฒเบเบเบฑเบเบชเบปเปเบ
เบเปเบฅเบฐเบเบตเบเบดเปเบชเบเบเบฝเบเปเบเปเปเบกเปเบ HyExpression, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเปเบฒเบ AST เบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบเบถเปเบเบเบฑเบ
เปเบเปเบเบเบเบญเบกเบเบดเปเบชเบเปเบเบเปเบฒเบเบฒเบก. เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, เปเบเปเบงเบฅเบฒเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบต (if เบเบตเปเปเบเปเบเบดเบ เบเบตเปเปเบเปเบเบดเบ เบเบดเบ), เบเบงเบเปเบฎเบปเบฒ
เบเปเบฒโเปเบเบฑเบโเบเปเบญเบโเปเบเปโเบชเปเบฒเบโเปเบเบฑเบโ ast.เบเปเบฒ, เปเบฅเบฐเบฅเบงเบเบฅเบงเบกเบเปเปเบเปเบญเบเปเบเปเบขเปเบฒเบเบเบทเบเบเปเบญเบ. เบเบตเปเปเบกเปเบเบเปเบญเบเบเบตเป @builds()
เบกเบต String เปเบเบฑเบ argument เปเบเบปเปเบฒเบกเบฒ.
เบชเปเบฒโเบฅเบฑเบ compile_expression (เปเบเบดเปเบเบเบทเบเบเปเบฒเบเบปเบเบเปเบงเบ @builds(HyExpression)) เบเบฐโเบเบฑเบโเบชเบปเปเบโ
เบญเบตเบเปเบชเปเบชเบฐเบเบฃเบดเบเบเบญเบเบเบฒเบเปเบเปเบเบฝเบเบเปเบฒเบญเบดเบ. เบเปเบฒเบซเบฒเบเบงเปเบฒ, เบชเปเบฒเบฅเบฑเบเปเบซเบเบเบปเบเบเบฒเบเบขเปเบฒเบ, เบเบฒเบเปเบเปเบเบฝเบเบเปเบฒเบญเบดเบเบเปเปเปเบกเปเบ
เบเปเบญเบเปเบเป, เบกเบฑเบเบเบฐเบเบฑเบเบเบฒเบเบเปเบฅเบฐเบเบตเบเบฑเปเบเปเบเปเบขเปเบฒเบเบเบทเบเบเปเบญเบ (เบชเปเบงเบเบซเบผเบฒเบเบญเบฒเบเบเบฐเปเบเบฑเบเปเบเบเบเบฒเบเบฅเปเบฝเบ เบเปเปโเบเบปเบโเปเบงเบฑเปเบ).
เบเปเบฒ String เบเปเปเบฎเบนเปเบเบฑเบ Hy, เบกเบฑเบเบเบฐเปเบเบฑเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบตเปเบเบฐเบชเปเบฒเบ ast.เปเบ, เปเบเบดเปเบเบเบฐเบเบฐเบเบฒเบเบฒเบก
เปเบเบซเบฒ runtime (เปเบ Python, เบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบ: foo()).
เบเบฑเบเบซเบฒ เบกเบปเบเบเบต เบเบฑเบ Python AST
Python AST เปเบกเปเบเบเบดเปเบเปเบซเบเป; เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบเบตเปเบเปเบงเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเบเบเบฒเบเบเบตเปเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบฑเปเบเบเปเบฒเบงเบขเบนเปเปเบเบดเบเบชเบธเบ
Python เปเบเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเปเปเบชเบนเปเบเบฑเบ Python เบเบฒเบเปเบเบตเบเปเบ. เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบชเบดเปเบเปเบเบเปเปเบเบฒเบก, เบเบงเบเปเบฎเบปเบฒเบกเบตเบชเปเบงเบเปเบเปเบเบเบธเบเบเบดเบเปเบฒเบเบญเบเบเบงเบเปเบฎเบปเบฒ
เบเบฑเบเบซเบฒ, เปเบฅเบฐเบเบตเปเปเบกเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบชเบฑเปเบเบเบญเบเปเบฅเบทเปเบญเบเบเบปเปเบงเปเบเบเบตเปเปเบเบปเปเบฒเบญเบฒเบเบเบฐเบเบปเบ.
Python เบเบงเบฒเบกเปเบเบเบเปเบฒเบ เบฅเบฐเบซเบงเปเบฒเบ เบเบปเบเบฅเบฒเบเบเบฒเบ เปเบฅเบฐ เบชเบณ เบเบงเบ.
เบเบตเปเบญเบฒเบเบเบฐเบเปเปเปเบเบดเปเบเบเบทเบงเปเบฒเปเบเบฑเบเปเบฅเบทเปเบญเบเปเบซเบเป - เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบชเปเบฒเบฅเบฑเบเบเบฑเบเบเบฝเบเปเบเบฅเปเบเบฅเบก Python เบชเปเบงเบเปเบซเบเป, เบเบตเปเบเบฐเปเบเบฑเบ
เบเบฒเบเปเบเบฑเบเบเปเบงเบเปเบงเบฅเบฒ "เบเบต, เปเบกเปเบเปเบฅเปเบง".
เปเบ Python, เปเบฎเบฑเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบ:
เบเบดเบก เบชเปเบฒเบฅเบฑเบเบเบฒเบ x in เบฅเบฐเบเบฑเบ(10): เบเปเบฒเบ, เปเบเบฒเบฐเบงเปเบฒ เบเบดเบก เบเบดเบกเบชเปเบฒเบเบงเบ, เปเบฅเบฐ เบชเปเบฒเบฅเบฑเบเบเบฒเบ เบเปเปเปเบกเปเบ
เบเบฒเบเบชเบฐเปเบเบเบญเบญเบ, เบกเบฑเบเปเบเบฑเบเบเปเบฒเบเบฐเปเบซเบผเบเบเบฒเบเปเบซเบผเบเบงเบเบเบธเบก. เบชเบดเปเบเบเบตเปเบกเบฑเบ 1 + 1 เปเบกเปเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบ, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบ lambda
x: 1 + x, เปเบเปเบฅเบฑเบเบชเบฐเบเบฐเบเบฒเบชเบฒเบญเบทเปเบเป, เปเบเบฑเปเบ: if, เบชเปเบฒเบฅเบฑเบเบเบฒเบ, เบซเบผเบท เปเบเบเบฐเบเบฐเบเบตเป เปเบกเปเบเบเปเบฒเบเบฐเปเบซเบผเบเบเบฒเบ.
เปเบเบทเปเบญเบเบเบฒเบเบเบงเบเปเบเบปเบฒเบเปเปเบกเบต "เบเบธเบเบเปเบฒ" เบชเปเบฒเบฅเบฑเบ Python, เบเบตเปเปเบฎเบฑเบเปเบซเปเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบ Hy เบเบฒเบ, เบเบฑเบเบเบฑเปเบเปเบเปเปเบฎเบฑเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบ
เบเบท (เบเบดเบก (if เบเบตเปเปเบเปเบเบดเบ เบเบตเปเปเบเปเบเบดเบ เบเบดเบ)) เบเปเปเบเบฝเบเปเบเปเปเบเบฑเบเปเบฅเบทเปเบญเบเบเปเบฒเบกเบฐเบเบฒ, เบกเบฑเบเบเบฒเบเบงเปเบฒ.
เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบฒเบเบชเบดเปเบเบเปเบฒเบเปเปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบเบเปเบเป a เบเบปเบ เบงเบฑเบเบเบธ, เบเปเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฐเปเบซเบเบตเปเบซเปเปเบเบดเบเปเบเป ast.stmt
เบเบตเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ, เปเบฅเบฐเบเบฝเบง ast.expr เบเบตเปเบชเบฒเบกเบฒเบเปเบเปเปเบเบทเปเบญเปเบซเปเปเบเปเบเบธเบเบเปเบฒเบเบญเบเบชเบดเปเบเปเบเบเปเปเบเบฒเบก
เปเบกเปเบเบเบฝเบเปเบเปเบเปเบฒเปเบเบตเบเบเบฒเบ. Hy เปเบฎเบฑเบเบชเบดเปเบเบเบตเปเปเบเบเบเบฒเบเบเบฑเบเบเบฑเบเบกเบญเบเบซเบกเบฒเบเปเบซเปเบชเบดเปเบเบเปเบฒเบเปเปเบเบเบฐเบเบฐเบเบตเปเปเบฅเปเบ.
เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, Hy:
(เบเบดเบก (เบเปเบฒโเปเบเบฑเบโเบเบดเบโเบเปเปโเบเบทเบโเบเปเบญเบโ)โ)
เบเบฐโเบเบฒเบโเปเบเบฑเบโ:
เบเปเบฒเปเบเบฑเบเบเบงเบฒเบกเบเบดเบ:
_mangled_name_here = เบเบทเบ
เบญเบทเปเบ:
_mangled_name_here = เบเปเปเบเบทเบเบเปเบญเบ
เบเบดเบก _mangled_name_here
เบเบปเบเบฅเบปเบ, เบกเบฑเบเปเบเบฑเบเปเบฅเบทเปเบญเบเบเบปเบงเบฐเปเบฅเบฑเบเบเปเบญเบ, เปเบเบฒเบฐเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบฝเบเบเบณเบเบฐเปเบซเบผเบเบเบฑเปเบเปเบเบฑเบ:
เบเบดเบก True เบเปเบฒเปเบเบฑเบเบเบดเบเบญเบตเบเบเบดเบ
เปเบเบเบเบฑเบเบเบฑเบเปเบซเปเบชเบดเปเบเบเปเบฒเบเปเปเบเบปเปเบฒเปเบเปเบ ast.expr เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเป, เปเบเปเปเบเบงเบเบงเบฒเบกเบเบดเบเบเบปเปเบงเปเบเปเบกเปเบเบเบท.
เบเบฑเปเบโเบเบญเบ 4: Python เบฅเบฐเบซเบฑเบเปเบเบ เบเบปเบเบเบฐเบฅเบดเบ เปเบฅเบฐ เปเบงเบฅเบฒเปเบฅเปเบ
เบซเบผเบฑเบเบเบฒเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบกเบตเบเบปเปเบเปเบกเป Python AST เบเบตเปเบชเบปเบกเบเบนเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเบฐเบเบฒเบเบฒเบกเบฅเบงเบเบฅเบงเบกเบกเบฑเบเบเบฑเบ Python
bytecode เปเบเบเบเบฒเบเบเบนเปเบกเบฑเบเบเปเบฒเบ เบเบฒเบเบเบฐเปเบกเบตเบ. เบเบฒเบโเบเบตเปโเบชเบธเบโเบญเบญเบโ, เบเบงเบโเปเบฎเบปเบฒโเบเปเปโเบกเบตโเบเปเปโเปเบโเบญเบตเบโเปเบฅเปเบงโเปเบโเบเบฒเบโเบเบงเบโเบเบธเบกโ, เปเบฅเบฐโ
Python เบเปเบฒเบฅเบฑเบเปเบเบดเปเบเปเบเบเบเบธเบเบขเปเบฒเบ. เบเบตเปเปเบกเปเบเปเบซเบเบเบปเบเบเบตเปเบงเปเบฒเบชเบดเปเบเบเปเบฒเบเปเปเบเบฑเปเบ Python tracebacks, pdb เปเบฅเบฐ
เปเบญเบฑเบเบฏ django เปเบฎเบฑเบเบงเบฝเบ.
Hy เบกเบฒเปเบเบฃ
เบเบฒเบเบเปเบฒเปเบเป gensym เบชเปเบฒเบฅเบฑเบเบเบฒเบ เบเบญเบเปเบ เบกเบฒเปเบเบฃ
เปเบเปเบงเบฅเบฒเบเบตเปเบเบฝเบ macro, เบซเบเบถเปเบเบเปเบญเบเบฅเบฐเบกเบฑเบเบฅเบฐเบงเบฑเบเปเบเบทเปเบญเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเบเบฑเบเบเบปเบงเปเบเบเบฒเบเบเบญเบเบซเบผเบทเบเบฒเบเบเปเบฒเปเบเป
เบเบทเปเบเบปเบงเปเบเบเบตเปเบญเบฒเบเบเบฐเบเบฑเบเบเบฑเบเบฅเบฐเบซเบฑเบเบเบนเปเปเบเป.
เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเป macro เบเบปเบงเบขเปเบฒเบ nif (เปเบเบดเปเบ
http://letoverlambda.com/index.cl/guest/chap3.html#sec_5 เบชเปเบฒโเบฅเบฑเบโเบเปเบฒโเบญเบฐโเบเบดโเบเบฒเบโเบเบตเปโเบชเบปเบกโเบเบนเบโเบซเบผเบฒเบโ.)
nif เปเบเบฑเบเบเบปเบงเบขเปเบฒเบ, เบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบ: เบเบปเบงเปเบฅเบ if, เบเปเบญเบเบเบตเปเบญเบตเบเปเบชเปเบเบฒเบเบชเบฐเปเบเบเบญเบญเบ, เบซเบเบถเปเบเปเบ
3 เบฎเบนเบเปเบเบเปเบกเปเบเปเบญเบตเปเบเบงเปเบฒเบเบถเปเบเบเบฑเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเปเบเบฑเบเบเบงเบ, เบชเบนเบเบซเบผเบทเบฅเบปเบ.
เบเบฒเบเบเปเบฒเบเบเบฑเปเบเบเบณเบญเบดเบเบญเบฒเบเบเบฐเปเบเบฑเบเบชเบดเปเบเปเบเบฑเปเบ:
(defmacro nif [expr pos-form zero-form neg-form]
`(เปเบซเป [[obscure-name ~expr]]
(cond [(pos? obscure-name) ~pos-form]
[(เบชเบนเบ? obscure-name) ~ zero-form]
[(neg? obscure-name) ~neg-form])))
เบเปเบญเบเบเบตเป obsure เบเบทเป เปเบกเปเบเบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเบเบตเปเบเบฐเปเบฅเบทเบญเบเปเบญเบปเบฒเบเบฒเบเบเบทเปเบเบปเบงเปเบเปเบเบทเปเบญเบเปเปเปเบซเปเบเบฑเบเบเบฑเบเบญเบฑเบเบญเบทเปเบ
เบฅเบฐเบซเบฑเบ. เปเบเปเปเบเปเบเบญเบ, เปเบเบเบฐเบเบฐเบเบตเปเบกเบตเบเบงเบฒเบกเบเบฑเปเบเปเบเบเบต, เบเบตเปเบเปเปเปเบกเปเบเบเบฒเบเบฎเบฑเบเบเบฐเบเบฑเบ.
เบงเบดเบเบตเบเบฒเบ gensym เบเบทเบเบญเบญเบเปเบเบเบกเบฒเปเบเบทเปเบญเบชเปเบฒเบเบชเบฑเบเบเบฒเบฅเบฑเบเปเบซเบกเป, เปเบเบฑเบเปเบญเบเบฐเบฅเบฑเบเบชเปเบฒเบฅเบฑเบเปเบญเบเบฒเบเบเบฑเปเบเบเปเบฒเบง.
เบชเบฐเบเบฑเบเบเบตเปเบเบตเบเบงเปเบฒเบซเบผเบฒเบเบเบญเบ nif เบเบฐเปเบเบฑเบ:
(defmacro nif [expr pos-form zero-form neg-form]
(เปเบซเป [[g (gensym)]]
`(เปเบซเป [[~g ~expr]]
(cond [(pos? ~g) ~pos-form]
[(เบชเบนเบ? ~g) ~ zero-form]
[(neg? ~g) ~neg-form]))))
เบเบตเปเปเบกเปเบเบเปเบฅเบฐเบเบตเบเบตเปเบเปเบฒเบ, เปเบเบฒเบฐเบงเปเบฒเบกเบตเบเบฝเบเปเบเปเบชเบฑเบเบเบฒเบฅเบฑเบเบเบฝเบง. เปเบเปเบเปเบฒเบกเบตเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบซเบผเบฒเบ
gensym เบเบญเบเบกเบตเบกเบฐเบซเบฒเบเบฒเบเบเบตเบชเบญเบเบเบตเปเบกเบต gensyms เบเบทเปเบเบเบฒเบเบเบตเปเบเบฐเบซเบเบฒเบเปเบเบชเบนเปเบเบธเบเบเบญเบ เปเบซเป
เบเบฐเปเบซเบผเบเบเบฒเบ:
(with-gensyms [abc]
... )
เบเบฐเบซเบเบฒเบเปเบ:
(เปเบซเป [[a (gensym)
[b (gensym)
[c (gensym)]]
... )
เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบฝเบเบเบทเบเปเบซเบกเป nif เปเบเบดเปเบเบเบทเบงเปเบฒ:
(defmacro nif [expr pos-form zero-form neg-form]
(เบเบฑเบ gensyms [g]
`(เปเบซเป [[~g ~expr]]
(cond [(pos? ~g) ~pos-form]
[(เบชเบนเบ? ~g) ~ zero-form]
[(neg? ~g) ~neg-form]))))
เบชเบธเบเบเปเบฒเบ, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบชเปเบฒเบเบกเบฐเบซเบฒเบเบฒเบเปเบซเบกเปเบเบตเปเปเบฎเบฑเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบชเปเบฒเบฅเบฑเบเบเบงเบเปเบฎเบปเบฒ. defmacro/g! เบเบฐเปเบเปเปเบงเบฅเบฒ
เบชเบฑเบเบเบฒเบฅเบฑเบเบเบฑเบเบซเบกเบปเบเบเบตเปเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบ g! เปเบฅเบฐเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบเบซเบฒ gensym เบเบฑเบเบชเปเบงเบเบเบตเปเปเบซเบผเบทเบญเบเบญเบ
เบชเบฑเบเบเบฒเบฅเบฑเบ. เบเบฑเปเบเบเบฑเปเบ g!a เบเบฐเบเบฒเบเปเบเบฑเบ (gensym "เบ").
เบชเบฐเบเบฑเบเบชเบธเบเบเปเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบญเบ nif, เบชเปเบฒเบเบเปเบงเบ defmacro/g! เบเบฒเบเปเบเบฑเบ:
(defmacro/g! nif [expr pos-form zero-form neg-form]
`(เปเบซเป [[~g!res ~expr]]
(cond [(pos? ~g!res) ~pos-form]
[(เบชเบนเบ? ~g!res) ~เบชเบนเบเปเบเบเบเบญเบก]
[(neg? ~g!res) ~neg-form]))))
เบเบฒเบเบเบงเบเบชเบญเบ Macro Arguments เปเบฅเบฐ เบเบฒเบเบฅเปเบฝเบ เบเปเปเบเบปเบเปเบงเบฑเปเบ
Hy เบเบนเปเบฅเบงเบเบฅเบงเบกเบเปเปเบกเบนเบ Built-Ins
เบเบนเปเบเบงเบเบเบธเบก MODULES INDEX
เปเบเบทเปเบญเปเบ:
เบญเบฐเปเบเบเบเบฐเบชเบปเบ เบกเบฒเปเบเบฃ
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.9.12.
เปเบกเบเบนเบ macro anaphoric เปเบฎเบฑเบเปเบซเปเบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบกเบเบตเปเบกเบตเบเบฐเปเบซเบเบเปเบ Hy เบซเบผเบฒเบ concise เปเบฅเบฐเบเปเบฒเบเบเบตเปเบเบฐ
เบญเปเบฒเบ
macro anaphoric เปเบกเปเบเบเบฐเปเบเบเบเบญเบ macro เบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบกเบเบตเปเปเบเบเบเบฐเบเบฒเปเบเบฑเบเบเปเบฒเบเบฒเบเบฎเบนเบเปเบเบ
เบชเบฐเปเบญเบเปเบซเปเปเบเปเบกเบฐเบซเบฒเบเบฒเบเบเบตเปเบญเบฒเบเบเบฐเบเบทเบเบเปเบฒเบงเปเบเบดเบเปเบเบ anaphor (เบเบฒเบเบชเบฐเปเบเบเบญเบญเบเปเบเบเบญเปเบฒเบเบญเบตเบ
เบเบฑเบโเบเบปเบโเบญเบทเปเบ). โ เบงเบดโเบเบดโเบเบตโเปเบเบ (http://en.wikipedia.org/wiki/Anaphoric_macro)
เบกเบฒเปเบเบฃ
ap-if
เบเบฒเบเบเปเบฒเปเบเป: (ap-if (foo) (เบเบดเบก เบกเบฑเบ))
เบเบฐเปเบกเบตเบเบฎเบนเบเปเบเบเบเปเบฒเบญเบดเบเบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเบเบดเบ, เปเบฅเบฐเบเบนเบเบกเบฑเบเบกเบฑเบ it เบเบฑเบโเปเบโเบเบงเบฒเบกโเบเบดเบโเปเบฅเบฐโเบเปเปโเบเบทเบโเบเปเบญเบโ
เบชเบฒเบเบฒ.
ap-เปเบเปเบฅเบฐ
เบเบฒเบเบเปเบฒเปเบเป: (เปเบเปเบฅเบฐเบญเบฑเบ [1 2 3 4 5] (เบเบดเบก เบกเบฑเบ))
เบเบฐเปเบกเบตเบเปเบเบเบเบญเบกเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบญเบปเบเบเบฐเบเบญเบเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบชเปเบฒเบฅเบฑเบเบเบปเบเบเบฐเบเบปเบเบเปเบฒเบเบเบฝเบ.
ap-เปเบเปเบฅเบฐเบเบฐเบเบฐ
เบเบฒเบเบเปเบฒเปเบเป: (ap-เปเบเปเบฅเบฐเบเบฑเปเบ เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป เบเบฒเบ เบฎเปเบฒเบเบเบฒเบ)
เบเบฐเปเบกเบตเบเปเบเบเบเบญเบกเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบญเบปเบเบเบฐเบเบญเบเบเบตเปเปเบเบเบเบญเบก predicate เบเบฑเบเบเบทเบเบกเบฒ เบเบตเปเปเบเปเบเบดเบ.
=> (ap-each-while [1 2 3 4 5 6] (< เบกเบฑเบ 4) (เบเบดเบกเบกเบฑเบ))
1
2
3
เปเบเบเบเบตเป
เบเบฒเบเบเปเบฒเปเบเป: (ap-map เบฎเบนเบเปเบเบ เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป)
เบฎเบนเบเปเบเบ anaphoric เบเบญเบเปเบเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบเบทเบเบฑเบเบเบฑเบเปเบเบเบเบตเปเบเบปเบเบเบฐเบเบดเปเบงเบฑเปเบเปเบชเบเปเบเปเบงเปเบฒเปเบเบเบเบตเปเบเบฐเปเบเบฑเบเบซเบเปเบฒเบเบตเป
เบงเบฑเบเบเบธเบกเบฑเบเปเบเปเปเบเบเบเบญเบก Hy. เบเบทเปเบเบดเปเบชเบ it เบเบทเบเบเบนเบเบกเบฑเบเบเบฑเบเบงเบฑเบเบเบธเบเบฐเบเบธเบเบฑเบเบเบฒเบ
เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเปเบ iteration เปเบเป.
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (ap-map (* it 2) [1 2 3]))
[2, 4, 6]
ap-map-when
เบเบฒเบเบเปเบฒเปเบเป: (ap-map-when predfn เบเบปเบงเปเบเบ เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป)
เบเบฐเปเบกเบตเบเบเบฒเบเบชเปเบฒเบเปเบเบเบเบตเปเบเปเบฒเบเบฅเบฒเบเบเบทเปเปเบเบเปเบเปเบเบฑเบเบเบฑเบ predicate เปเบเบทเปเบญเบเปเบฒเบเบปเบเปเบงเบฅเบฒเบเบตเปเบเบฐเบเปเบฒเปเบเป
เปเบเบเบเบญเบก.
=> (เบฅเบฒเบเบเบฒเบ (ap-map-when odd? (* it 2) [1 2 3 4]))
[2, 2, 6, 4]
=> (เบฅเบฒเบเบเบฒเบ (ap-map-when even? (* it 2) [1 2 3 4]))
[1, 4, 3, 8]
ap-filter
เบเบฒเบเบเปเบฒเปเบเป: (ap-filter เบฎเบนเบเปเบเบ เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป)
เปเบเบฑเปเบโเบเบฝเบงโเบเบฑเบ เปเบเบเบเบตเป เบเบงเบเปเบฎเบปเบฒเปเบญเบปเบฒเบฎเบนเบเปเบเบเบเบดเปเบชเบเปเบเบเบซเบเปเบฒเบเบตเปเปเบเบทเปเบญเบเบฑเปเบเบเบญเบเบญเบปเบเบเบฐเบเบญเบเบเบญเบ
เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป. เบเบทเปเบเบดเปเบชเบ it เบเบทเบเบเบนเบเบกเบฑเบเบเบฑเบเบญเบปเบเบเบฐเบเบญเบเบเบฑเบเบเบธเบเบฑเบเปเบเบเบฒเบเปเบฎเบฑเบเบเปเบณ.
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (ap-filter (> (* it 2) 6) [1 2 3 4 5]))
[4, 5]
ap-เบเบฐเบเบดเปเบชเบ
เบเบฒเบเบเปเบฒเปเบเป: (ap-เบเบฐเบเบดเปเบชเบ เบฎเบนเบเปเบเบ เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป)
เบซเบเปเบฒเบเบตเปเบเบตเปเปเบฎเบฑเบเบเบปเบเบเบฑเบเบเปเบฒเบกเบเบฑเบ ap-filter, เบกเบฑเบเบเบฐเบเบดเปเบชเบเบญเบปเบเบเบฐเบเบญเบเบเบตเปเบเปเบฒเบ
เบเบฒเบ. เบเบทเปเบเบดเปเบชเบ it เบเบทเบเบเบนเบเบกเบฑเบเบเบฑเบเบญเบปเบเบเบฐเบเบญเบเบเบฑเบเบเบธเบเบฑเบเปเบเบเบฒเบเปเบฎเบฑเบเบเปเบณ.
=> (เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป (ap-reject (> (* it 2) 6) [1 2 3 4 5]))
[1, 2, 3]
ap-dotimes
เบเบฒเบเบเปเบฒเปเบเป (ap-dotimes n เบฎเปเบฒเบเบเบฒเบ)
เบซเบเปเบฒเบเบตเปเบเบตเปเบเบฐเปเบกเบตเบเบฎเปเบฒเบเบเบฒเบ n เปเบงเบฅเบฒ, เบเบฑเบเบเบปเบงเปเบเบเบดเปเบชเบ it เบเบนเบโเบเบฑเบโเบเบฒเบ 0 to
1-เบ. เบกเบฑเบเปเบเบฑเบเบเบฐเปเบซเบเบเบชเปเบฒเบฅเบฑเบเบเบปเบเบเปเบฒเบเบเบฝเบ.
=> (setv n [])
=> (ap-dotimes 3 (. append n เบกเบฑเบ))
=> เบ
[0, 1, 2]
ap-first
เบเบฒเบเบเปเบฒเปเบเป (ap-first predfn เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป)
เบเบฑเบเบเบฑเบเบเบตเปเบชเบปเปเบเบเบทเบเบญเบปเบเบเบฐเบเบญเบเบเปเบฒเบญเบดเบเบเบตเปเบเปเบฒเบ predicate เบซเบผเบท เบเปเปเบกเบต, เบเบตเปเบกเบต
เบเบปเบงเปเบเบเบดเปเบชเบ it เบเบนเบเบกเบฑเบเบเบฑเบเบญเบปเบเบเบฐเบเบญเบเบเบฑเบเบเบธเบเบฑเบเปเบเบเบฒเบเปเบฎเบฑเบเบเปเบณ.
=> (ap-first (> เบกเบฑเบ 5) (เบเปเบงเบ 10))
6
ap-เบชเบธเบเบเปเบฒเบ
เบเบฒเบเบเปเบฒเปเบเป (ap-เบชเบธเบเบเปเบฒเบ predfn เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป)
เบเบฑเบเบเบฑเบเบเบตเปเบชเบปเปเบเบเบทเบเบญเบปเบเบเบฐเบเบญเบเบชเบธเบเบเปเบฒเบเบเบตเปเบเปเบฒเบ predicate เบซเบผเบท เบเปเปเบกเบต, เบเบดเปเบชเบ
เบเบปเบงเปเบ it เบเบนเบเบกเบฑเบเบเบฑเบเบญเบปเบเบเบฐเบเบญเบเบเบฑเบเบเบธเบเบฑเบเปเบเบเบฒเบเปเบฎเบฑเบเบเปเบณ.
=> (ap-last (> เบกเบฑเบ 5) (เปเบฅเบเบฐ 10))
9
ap-เบซเบผเบธเบเบเปเบญเบ
เบเบฒเบเบเปเบฒเปเบเป (ap-reduce เบฎเบนเบเปเบเบ เบเบฑเบเบเบตเบฅเบฒเบเบเบทเป &เบเบฒเบเปเบฅเบทเบญเบ เบกเบนเบโเบเปเบฒโเปเบเบทเปเบญเบโเบเบปเปเบโ)
เบเบฑเบเบเบฑเบเบเบตเปเบชเบปเปเบเบเบทเบเบเบปเบเบเบญเบเบเบฒเบเบเปเบฒเปเบเปเปเบเบเบเบญเบกเบเบฑเบ 2 เบญเบปเบเบเบฐเบเบญเบเบเปเบฒเบญเบดเบเปเบเบฎเปเบฒเบเบเบฒเบเปเบฅเบฐ
เบเบฒเบเบเปเบฒเปเบเปเบเบปเบเปเบเปเบฎเบฑเบเปเบฅเบฐเบญเบปเบเบเบฐเบเบญเบเบเบต 3 เปเบฅเบฐเบญเบทเปเบเปเบเบปเบเบเปเบงเบฒเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบซเบกเบปเบ. เบเบฒเบเปเบฅเบทเบญเบเปเบเบฑเบ
เบชเบฒเบกเบฒเบเบชเบฐเปเบญเบเบกเบนเบเบเปเบฒเปเบเบทเปเบญเบเบเบปเปเบเปเบเป เบเบฑเปเบเบเบฑเปเบเบเบฑเบเบเบฑเบเบเบฐเบเบณเปเบเปเบเบฑเบเบเปเบฒเปเบเบทเปเบญเบเบเบปเปเบ เปเบฅเบฐเบเปเบฒ
เบญเบปเบเบเบฐเบเบญเบเบเปเบฒเบญเบดเบเปเบเบ. เบเบตเปเปเบเบตเบเปเบเบตเบเปเบซเปเปเบซเบฑเบเบญเบปเบเบเบฐเบเบญเบเบเบตเปเบเปเบฒเบฅเบฑเบเบเบทเบ iterated เปเบเบฑเบ it เปเบฅเบฐเบเบฐเบเบธเบเบฑเบ
เบกเบนเบเบเปเบฒเบชเบฐเบชเบปเบกเปเบเบฑเบ acc.
=> (ap-reduce (+ it acc) (เบเปเบงเบ 10))
45
loop/recur
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.0.
เปเบเป loop / recur macro เปเบซเปเบเบฑเบเบเบฝเบเปเบเบฅเปเบเบฅเบกเบกเบตเบงเบดเบเบตเบเปเบฒเบเปเปเบเบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบฒเบเปเบเบซเบฒเบ (TCO)
เปเบเบฅเบฐเบซเบฑเบ Hy เบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒ.
เบเบฒเบเปเบญเบตเปเบเบซเบฒเบเปเบกเปเบเบเบฒเบเปเบเปเบเบเบเบปเบเบเบฐเบเบดเบเปเบญเบเบเบตเปเปเบเบตเบเบเบถเปเบเบเบฒเบเปเบเบเบฑเปเบเบเบญเบเบญเบทเปเบเปเบเบฑเบเบเบฑเปเบเบเบญเบเบชเบธเบเบเปเบฒเบ
เบเบฒเบเบเบฐเบเบดเบเบฑเบ; เบกเบฑเบโเบญเบฒเบโเบเบฐโเบเบฐโเบฅเบดเบโเปเบเบฑเบโเบกเบนเบโเบเปเบฒโเบเบฑเบโเบเบทเบโเปเบโเบเปเบญเบโเบเบตเปโเบซเบผเบฑเบโเบเบฒเบโเบเบฑเปเบโเปเบเปโเบเบทเบโเบเบฑเบโเบเบทเบโเบกเบฒโเบเบฑเบโเบเบตโเปเบเบโเบเบฒเบโเปเบโ
เบเบฑเปเบโเบเบญเบโเบเบฒเบโ. เบเปเบฒเบเบฒเบเปเบญเบตเปเบเบญเบฑเบเปเบเบญเบฑเบเปเบถเปเบเบเบตเปเปเบฎเบฑเบเปเปเบฒเบเบตเปเบเปเบญเบเบเบฐเบเบดเบเบฑเบ, เบกเบฑเบเบญเบฒเบเบเบฐเบเบณเปเบเบชเบนเปเปเบเบเบตเปเบชเบธเบ
เบเบฑเบ routine เบเปเบญเบเบเบฝเบงเบเบฑเบเบเบตเปเบเบทเบเปเบญเบตเปเบเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบเบฅเบปเบเบฅเบฐเบเบปเบเบเปเบญเบเปเบชเปเบเบฒเบเปเบ, เปเบกเปเบเบขเบนเปเปเบเบเปเบฒเปเบซเบเปเบเบซเบฒเบ,
subroutine เบเบฑเปเบเบเปเบฒเบงเปเบเปเบเบทเบเบเปเบฒเบงเปเบเบดเบเบงเปเบฒเปเบเบฑเบเบซเบฒเบ recursive, เปเบเบดเปเบเปเบเบฑเบเบเปเบฅเบฐเบเบตเบเบดเปเบชเบเบเบญเบ recursion.
เบเบฒเบเปเบเบซเบฒเบเปเบกเปเบเบชเปเบฒเบเบฑเบเปเบเบฒเบฐเบงเปเบฒเบเบงเบเปเบเบปเบฒเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเปเปเบเบเบเปเปเบเปเบญเบเปเบเบตเปเบก stack เปเบซเบกเป
เบเบญเบเปเบชเป stack เบเบฒเบเปเบ. เบชเปเบงเบเปเบซเบเปเบเบญเบเบเบญเบเบเบญเบเบเบฑเปเบเบเบญเบเบเบฐเบเบธเบเบฑเบเปเบกเปเบเบเปเปเบเปเบฒเปเบเบฑเบ
เบซเบผเบฒเบ, เปเบฅเบฐเบกเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเปเบเบเบเบตเปเบเปเบงเบเบเบญเบเบเบญเบเบเบฒเบเปเบเบซเบฒเบ. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบเบเบเบฒเบเบชเบฒเบกเบฒเบเปเบเบฑเปเบเปเบเบซเบฒ
เปเบเบซเบฒ routine เบเปเบญเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒ. เบเบฒเบเบเบฐเบฅเบดเบเบฅเบฐเบซเบฑเบเบเบฑเปเบเบเปเบฒเบงเปเบเบเบเบตเปเบเบฐเปเบเบฑเบเบฅเปเบฒเบเบฑเบเบเบฒเบเปเบเบกเบฒเบเบเบฐเบเบฒเบเปเบกเปเบ
เปเบญเบตเปเบเบงเปเบฒเบเบฒเบเบฅเบปเบเบฅเปเบฒเบเบเบฒเบเปเบเบซเบฒเบ, เบซเบผเบทเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบฒเบเปเบเบซเบฒเบ. เบเบฒเบเบเปเบฒเบเบฑเบเบเบฒเบเปเบเบซเบฒเบเบญเบฐเบเบธเบเบฒเบเปเบซเป
เบเบฑเปเบเบเบญเบเบเบฒเบเบฎเบฝเบเบฎเปเบญเบเบขเบนเปเปเบเบเปเบฒเบซเบฒเบเบเบตเปเบเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบเบขเปเบฒเบเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบทเบเบฑเบเบเปเบฒเบเบฐเปเบซเบผเบเบเบตเป goto,
เบเบฑเปเบเบเบฑเปเบเบเบถเปเบเปเบฎเบฑเบเปเบซเปเปเบเบเบเบฒเบเบเบตเปเบกเบตเปเบเบเบชเปเบฒเบเบเบตเปเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบ. โ เบงเบดโเบเบดโเบเบตโเปเบเบ (-
http://en.wikipedia.org/wiki/Tail_call)
เบกเบฒเปเบเบฃ
loop
loop เบชเปเบฒเบเบเบธเบ recursion. เบเบฑเบ loop, recur rebinds เบเบปเบงเปเบเบเบตเปเบเปเบฒเบเบปเบเปเบงเปเปเบ
เบเบธเบ recursion เปเบฅเบฐเบชเบปเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบฅเบฐเบซเบฑเบเบเบฑเบเบเบทเบเปเบเบเปเบญเบเบเบธเบ recursion เบเบฑเปเบ. เบเปเบฒ recur เบเบทเบเบเปเบฒเปเบเปเปเบ
เบเปเบฒเปเบซเบเปเบเบเบตเปเบเปเปเปเบกเปเบเบซเบฒเบ, เบเบฒเบเบเบปเบเปเบงเบฑเปเบเปเบกเปเบเบเบทเบเบเบดเปเบก.
เบเบฒเบเบเปเบฒเปเบเป: (เบงเบปเบ เบเบฒเบเบเบนเบเบกเบฑเบ &เบเบฑเบเบเปเบญเบ เบฎเปเบฒเบเบเบฒเบ)
เบเบปเบงเบขเปเบฒเบ:
(เบเปเบญเบเบเบฒเบ hy.contrib.loop)
( defn factorial [n]
(เบงเบปเบ [[เปเบ] [acc 1]]
(เบเปเบฒ (เบชเบนเบ? i)
acc
(เปเบเบตเบเบเบถเปเบเบเปเบณ (dec i) (* acc i)))))
(เปเบฎเบเบเบฒเบ 1000)
defmulti
เปเปเปเปเบเปเบงเบตเบเบฑเปเบ 0.10.0.
defmulti เปเบฎเบฑเบเปเบซเปเบเปเบฒเบ arity-overload เบเบฑเบเบเบฑเบเปเบเบเบเปเบฒเบเบงเบ args เปเบฅเบฐ/เบซเบผเบท kwargs เบเบตเปเบเปเบฒเบเบปเบเปเบงเป.
เปเบเปเบฎเบฑเบเบเบฒเบเบเบปเบเปเบเบเบฒเบ Clojure's take on defn.
=> (เบเปเบญเบเบเบฒเบ hy.contrib.multi)
=> (เบกเปเบงเบเบซเบผเบฒเบ
... ([a] "เบ")
... ([ab] "ab")
... ([abc] "abc"))
=> (เบกเปเบงเบ 1)
"เบ"
=> (เบกเปเบงเบ 1 2)
"ab"
=> (เบกเปเบงเบ 1 2 3)
"abc"
เบเบฒเบเปเบฎเบฑเบ ON HY
เปเบเบปเปเบฒเบฎเปเบงเบก เบเบญเบเบเบงเบเปเบฎเบปเบฒ เปเบฎเบงเบต!
เบเบฐเบฅเบธเบเบฒเบกเบฒ hack เบชเบธเบ Hy!
เบเบฐเบฅเบธเบเบฒเบกเบฒ hang out เบเบฑเบเบเบงเบเปเบฎเบปเบฒ #เปเบญเบต on irc.freenode.net!
เบเบฐเบฅเบธเบเบฒเบชเบปเบเบเบฐเบเบฒเบเปเบฝเบงเบเบฑเบเบกเบฑเบเบเปเบฝเบงเบเบฑเบ Twitter เบเบฑเบ #เปเบญเบต เปเบเบทเปเบญเบโเบซเบกเบฒเบโเบชเบตเปโเบซเบผเปเบฝเบก!
เบเบฐเบฅเบธเบเบฒ blog เบเปเบฝเบงเบเบฑเบเบกเบฑเบ!
เบเบฐโเบฅเบธโเบเบฒโเบเปเปโเปเบเปโเบชเบตเบโเบกเบฑเบโเบขเบนเปโเปเบโเบฎเบปเปเบงโเบเบญเบโเปเบเบทเปเบญเบโเบเปเบฒเบโเบเบญเบโเบเปเบฒเบ (เปเบเบโเบเปเปโเบกเบตโเบเบฒเบโเบเปโเบเบฒเบกโ)โ!
เปเบฎเบ!
เปเบฎเบฑเบเบชเบดเปเบเบเบตเป:
1. เบชเปเบฒเบเบ virtual เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก:
$ virtualenv venv
เปเบฅเบฐเปเบเบตเบเปเบเปเบกเบฑเบ:
$ . venv/bin/activate
เบซเบผเบทเบเบฒเบเบเปเบฒเปเบเป virtualenvwrapper เปเบเบทเปเบญเบชเปเบฒเบเปเบฅเบฐเบเบฑเบเบเบฒเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก virtual เบเบญเบเบเปเบฒเบ:
$ mkvirtualenv hy
$ workon hy
2. เปเบญเบปเบฒเบฅเบฐเบซเบฑเบเปเบซเบผเปเบ:
$ git clone https://github.com/hylang/hy.git
เบซเบผเบทเปเบเปเบชเปเบญเบกเบเบญเบเปเบเบปเปเบฒ:
clone $ git [email protected]: /hy.git
3. เบเบดเบเบเบฑเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบ hacking:
$ cd hy/
$ pip เบเบดเบเบเบฑเปเบ -e .
4. เบเบดเบเบเบฑเปเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒ-y เบญเบทเปเบเป:
$ pip เบเบดเบเบเบฑเปเบ -r requirement-dev.txt
5. เปเบฎเบฑเบเบชเบดเปเบเบเบตเปเบซเบเปเบฒเบซเบงเบฒเบเบชเบฝเบง; เปเบฎเบฑเบโเปเบซเปโเบเบนเปโเปเบโเบเบนเปโเบซเบเบถเปเบ shriek เปเบโเบเบงเบฒเบกโเบเบดเบโเบเบต / disgust เปเบโเบชเบดเปเบโเบเบตเปโเบเปเบฒเบโเปเบเปโเปเบฎเบฑเบ.
เบเบปเบเบชเบญเบ!
เบเบฒเบเบเบปเบเบชเบญเบเปเบกเปเบเบเบฑเปเบเบขเบนเปเปเบ เบเบฒเบเบเบปเบเบชเบญเบ/. เบเบงเบเปเบฎเบปเบฒเปเบเป เบเบฑเบ.
เปเบเบทเปเบญโเบเปเบฒโเปเบเบตเบโเบเบฒเบโเบเบปเบโเบชเบญเบโ:
$ เบเบฒเบเบเบงเบเบเบฑเบ
เบเบฒเบเบเบปเบเบชเบญเบเบเบฒเบเบเบฝเบ --- เบเบฒเบเบเบปเบเบชเบญเบเปเบกเปเบเบเบต!
เบเบญเบเบเบฒเบเบเบตเป, เบกเบฑเบเปเบเบฑเบเบเบฒเบเบเบตเบเบตเปเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเบเบชเบญเบเบชเปเบฒเบฅเบฑเบเบเบธเบเปเบงเบเบตเบเบตเปเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเปเบฅเบฐเบชเปเบฒเบฅเบฑเบ PEP 8 เบเบฐเบเบดเบเบฑเบเบเบฒเบก
เบฅเบฐเบซเบฑเบ. เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเปเบเบเบเบฒเบเปเบฅเปเบ tox:
$ tox
เปเบญเบเบฐเบชเบฒเบ!
เปเบญเบเบฐเบชเบฒเบเบเบฑเปเบเบขเบนเปเปเบ docs/. เบเบงเบเปเบฎเบปเบฒเปเบเป sphinx.
เปเบเบทเปเบญเบชเปเบฒเบเปเบญเบเบฐเบชเบฒเบเปเบ HTML:
$ cd docs
$ เปเบฎเบฑเบ html
เบเบฝเบ docs---docs เปเบกเปเบเบเบต! เปเบกเปเบเปเบเปเปเบญเบเบฐเบชเบฒเบเบเบตเป!
เบเบฒเบเบเบฐเบเบญเบเบชเปเบงเบ
เบเบฒเบเบเบฐเบเบญเบเบชเปเบงเบเปเบกเปเบเบเบดเบเบเบตเบเปเบญเบเบฎเบฑเบ & เบเบทเปเบเบเบปเบกเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบ, เบเบธเบเปเปเบฅเบฑเบเบเปเบญเบเบเบฐเบเปเบงเบเปเบฎเบฑเบเปเบซเป Hy เบซเบผเบฒเบเบเบถเปเบ
เบซเบเปเบฒเบซเบงเบฒเบเบชเบฝเบง.
เบเบฒเบเบฎเปเบญเบเบเปเบเบถเบเปเบกเปเบเบเบตเบซเบผเบฒเบ! เบเบงเบเปเบฎเบปเบฒเบฎเบฑเบเบเบงเบเปเบเบปเบฒ; เบเบตเปเปเบกเปเบเบเปเบฒเปเบเบฐเบเปเบฒเบเปเบงเบ:
ยท Fork the repo เปเบฅเบฐเบชเปเบฒเบเบชเบฒเบเบฒเบซเบปเบงเบเปเปเบชเปเบฒเบฅเบฑเบเบเบธเบเบเบฐเบชเบปเบกเบเบฑเบ / เบเบฒเบเปเบเปเปเบ. เบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเปเบฎเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบเปเบเบเบเบปเบ
เปเบเบชเบฒเบเบฒเปเบกเปเบเบปเบ.
ยท เบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเปเบเบปเปเบฒเบกเบฒเบเบฑเบเปเบปเบเบเบงเบเบกเบฒเบเปเบญเบกเบเบฑเบเบเบฒเบเบเบปเบเบชเบญเบ.
ยทเบเปเบญเบเบเบตเปเบเปเบฒเบเบเบฐเบชเบปเปเบ PR, เบเบฐเบฅเบธเบเบฒเบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเบเบชเบญเบเปเบฅเบฐเบเบงเบเปเบเบดเปเบเบฅเบฐเบซเบฑเบเบเบญเบเบเปเบฒเบเบเปเปเบเบฑเบเบฎเบนเบเปเบเบ
เบเบนเปเบกเบท. เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบเบฑเบเบชเบญเบเบชเบดเปเบเปเบซเบผเบปเปเบฒเบเบตเปเปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ:
$ เปเบฎเบฑเบเปเบซเป d
ยท เปเบฎเบฑเบโเปเบซเปโเบเปเบฒโเบซเบกเบฑเปเบโเบชเบฑเบโเบเบฒโเปเบเบปเปเบฒโเปเบโเปเบโเบซเบเปเบงเบโเบเบฒเบโเบเบตเปโเบกเบตโเปเบซเบโเบเบปเบโ, เบเบฑเปเบโเบเบฑเปเบโเบกเบฑเบโเบเปเบฒเบโเบเบตเปโเบเบฐโเบเบดเบโเบเบฒเบกโเปเบฅเบฐโเบเปเบฒโเบเบฒเบโเปเบโเบเบฒเบโเบซเบผเบฑเบโ. เบเปเบญเบ
เบชเบปเปเบ PR, เบเบฐเบเบฒเบเบฒเบก squashing commits เปเบเบปเปเบฒเปเบเปเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบตเปเบเปเบฒเบเบเบตเปเบเบฐเบเบฑเบเบเบทเบเบกเบฒ
เบเปเปเบกเบฒ. เบเบญเบเบเบฒเบเบเบตเป, เปเบซเปเปเบเปเปเบเบงเปเบฒเบเปเบฒเบเบเปเปเบเปเบญเบเปเบซเปเบเปเบญเบเบซเบงเปเบฒเบ spurious เปเบเบเบธเบเบเบฒเบเบเปเบฝเบเปเบเบ; เบเบตเป
เบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเบชเปเบฒเบเบเบฒเบเปเบเปเปเบเบเปเบญเบเบซเบงเปเบฒเบเปเบเบเบฒเบเบซเบผเบฑเบ.
ยท เปเบเบปเปเบฒเบเบตเปเบเปเปเบเบงเบฒเบกเบชเบฑเบเบเบฒเปเบ, เบเบฐเบเบฒเบเบฒเบกเบเบฐเบเบดเบเบฑเบเบเบฒเบกเบเปเปเปเบเบเบตเป:
ยท เบเบฐเบเบฒเบเบฒเบกเบเบดเบเบขเบนเปเปเบเบเบตเบเบเบณเบเบฑเบ 50 เบเบปเบงเบญเบฑเบเบชเบญเบเบชเบณเบฅเบฑเบเปเบเบงเบเบณเบญเบดเบเบเบญเบเบเปเปเบเบงเบฒเบก Git commit.
ยท เบชเปเบฒเบฅเบฑเบเบฅเบฒเบเบฅเบฐเบญเบฝเบ/เบเปเบฒเบญเบฐเบเบดเบเบฒเบเปเบเบตเปเบกเปเบเบตเบก, เบเบดเบเบเบฒเบกเบญเบฑเบเบเบตเปเบเปเบงเบเปเบชเบฑเปเบเปเบเบปเปเบฒ เปเบฅเบฐเบชเบทเบเบเปเป
เบญเบฐโเบเบดโเบเบฒเบโเบเปเบฒโเบซเบกเบฑเปเบโเบชเบฑเบโเบเบฒโเปเบโเบฅเบฐโเบญเบฝเบโ.
ยทเบชเบธเบเบเปเบฒเบ, เปเบเบตเปเบกเบเบปเบงเบเปเบฒเบเปเบญเบเปเบชเปเปเบเบฅเป AUTHORS (เปเบเบฑเบเบเปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒเปเบเบเบเปเบฒเบเบซเบฒเบ): เบเปเบฒเบเบชเบปเบกเบเบงเบเปเบเปเบฎเบฑเบเบกเบฑเบ :)
ยทเบเบธเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบตเปเปเบเบปเปเบฒเบกเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบญเบกเบฎเบฑเบเปเบเบ 2 เบชเบฐเบกเบฒเบเบดเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบเบญเบเบเบตเบกเบเบฒเบเบซเบผเบฑเบเบเบญเบ Hylang.
เบเบฒเบเบเบปเบเบเบงเบเบเบทเบเปเบเบตเปเบกเปเบเบตเบกเปเบกเปเบเบเบดเบเบเบตเบเปเบญเบเบฎเบฑเบเบขเปเบฒเบเบเบฐเปเบเปเบ, เปเบเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบขเปเบฒเบเบซเบเปเบญเบ 2 signoffs เบชเปเบฒเบฅเบฑเบเปเบเป
เบเปเบฝเบเปเบเบ.
ยท เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบชเบฐโเบกเบฒโเบเบดเบโเบซเบผเบฑเบโเปเบกเปเบโเบชเบปเปเบโเปเบ PRโ, เบเบฐโเบฅเบธโเบเบฒโเบเบญเบโเบซเบฒ 2 เบชเบฐโเบกเบฒโเบเบดเบโเบซเบผเบฑเบโเบเบตเปโเบเปเปโเปเบเปโเบเบฐโเบเบญเบโเบกเบตโ
PR เบชเบปเปเบ. เปเบเบงเบเบงเบฒเบกเบเบดเบเบขเบนเปเบเบตเปเบเบตเปเปเบกเปเบเบงเปเบฒเบซเบเบถเปเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบนเปเบเบฝเบ PR, เปเบฅเบฐ acks เบเบตเบชเบญเบ
เบเบธเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบฑเบเบซเบกเบปเบ.
ยท เบชเปเบฒเบฅเบฑเบเปเบญเบเบฐเบชเบฒเบ & เบเบฒเบเบเปเบฝเบเปเบเบเปเบฅเบฑเบเบเปเบญเบเบญเบทเปเบเป, เบเบงเบเปเบฎเบปเบฒเบเบตเบเบตเปเบเบฐเบฅเบงเบกเบซเบผเบฑเบเบเบฒเบเบซเบเบถเปเบ ACK. เบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบ
เบเบฒเบเบเบธเปเบกเบเบญเบเบเปเปเบฒ, เบชเบฐเบเบฑเปเบเบกเบฑเบเบเบฐเปเบเบฑเบเบเบฒเบเบเบตเบเบตเปเบเบฐเบฎเบฑเบเบชเบฒเบชเบดเปเบเบเบตเบเบเบงเบฒเบเบเบฑเปเบเปเบซเปเบเปเปเบฒ.
Core เบเบตเบกเบเบฒเบ
เบเบตเบกเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบซเบผเบฑเบเบเบญเบ Hy เบเบฐเบเบญเบเบเปเบงเบเบเบนเปเบเบฑเบเบเบฐเบเบฒเบเปเปเปเบเบเบตเป:
ยท Julian Danjou
ยท Morten Linderud
ยท J Kenneth เบเบปเบ
ยท Gergely เบเบตเปเบเบดเปเบเปเบซเบเป
ยท เปเบกเบทเบญเบ Tuukka เปเบเบปเปเบฒ
ยท Karen Rustad
ยท Abhishek L
ยท Christopher Allan Webber
ยท เบเบญเบเบฃเบฒเบ เบฎเบดเบเปเบเบฑเบ
ยท เบเบฐ Kahn-Greene
ยท Paul Tagliamonte
ยท Nicolas Dandrimont
ยท Bob Tolbert
ยท Berker เปเบเบฑเบเบชเบฐเปเบญเบ
ยท Clinton N. Dreisbach
ยท han เปเบเบกเบกเบฐ
เปเบเปเบญเบญเบเปเบฅเบเป hy เปเบเบเปเบเปเบเปเบฅเบดเบเบฒเบ onworks.net