prashanth updated resume 2024 for Teaching Profession
Devfest kyoto2018 Lisp-Koans
1. - D. A 0F )
) ( 1
H 9 C 4 4 9
About me
- D. A 0F )
2. About me
SNS
Twitter: @dbym4820
mail: aburatanitomoki@gmail.com
Facebook (Tomoki Aburatani)
Connpass: @tomabu
Github: dbym4820
- D. A 0F )
Interest
Common Lisp
Prolog
Elixir
PHP
Java
- D. A 0F )
Debian
Emacs
Firefox
Manga/Anime
Ontology
Conversation Agent
3. Lisp
(Kansai Lisp Users Group)
- D. A 0F )
Roles and Purposes
What is KLUG
A community that is formed together
people who interested in the programming
language named “Lisp”
Lisp
(Kansai Lisp Users Group)
- D. A 0F )
4. - D. A 0F )
Lisp
(Kansai Lisp Users Group)
Contact
- D. A 0F )
https://kansai-lisp-users.herokuapp.com/
/ 48
https://kansai-lisp-users.github.io/
2 4
5. Contact
- D. A 0F )
.4
https://www.facebook.com/groups/
1425860504132972/?ref=bookmarks
9
https://twitter.com/kansailispusers
4AA
https://kansai-lisp-useres.connpass.com/event/101484/
H) (
6. - D. A 0F )
Do you know Lisp ?
- D. A 0F )
Are you Lisp user?
7. Lisp is…
- D. A 0F )
✤ Full of parentheses
✤ Emacs(-Lisp)
✤ Out of order
✤ Academic usage only
…etc
Lisp is…
- D. A 0F )
✤ Full of parentheses
✤ Emacs
✤ Out of Order
✤ Academic usage only
…etc
8. Lisp in Recent Products
- D. A 0F ) ※Images are get from wikipedia
Lisp is
- D. A 0F )
Modern
Powerful
Beautiful
Language
9. - D. A 0F )
Is Lisp Difficult?
- D. A 0F )
Never!
Not at all!
10. - D. A 0F )
Lisp is very simple language
It is little bit difficult for novice
to learn because of
less opportunities to train
But
Introduce a Lisp Training Tool
“Lisp-Koans”
- D. A 0F )
Do you know
xx-Koans?
11. The Meaning of Koan
- D. A 0F )
1 7
Koan ( )
Wikipedia
The Meaning of Koan
- D. A 0F )
1 7
Koan ( )
Wikipedia
Drill
14. xx-Koans
- D. A 0F )
✤ Koan → ( )
✤ Mediation → ( )
✤ Thinking → ( )
✤ Expand awareness → ( )
✤ Enlightenment → ( )
Lisp-Koans
- D. A 0F ) https://github.com/google/lisp-koans
15. Lisp-Koans
- D. A 0F )
Common Lisp Koans is a language learning exercise in the same vein as the ruby
koans, python koans and others. It is a port of the prior koans with some
modifications to highlight lisp-specific features. Structured as ordered groups of
broken unit tests, the project guides the learner progressively through many
Common Lisp language features.
From Github
Common Lisp Koans Ruby-koans/Python-koans/
Lisp
CL
What is Common Lisp
- D. A 0F )
One of the Lisp dialect
✦ 1994 for ANSI Common Lisp
✦ Multi paradigm
✦ Static scope
✦ Dynamic development on REPL
16. What is Common Lisp
- D. A 0F )
Famous implementation
SBCL(Steal Bank Common Lisp)
CCL(Clozure CL)
ABCL(Armed Bear CL)
ACL(Alegro CL)
GCL(GNU CL)
ECL(Embeddable CL)
LispWorks
clisp
One of the Lisp dialect
What is Common Lisp
- D. A 0F )
20. Chapters of Lisp-Koan
- D. A 0F )
❖ arrays
❖ asserts
❖ atoms-vs-lists
❖ clos
❖ condition-handlers
❖ control-statements
❖ dice-project
❖ equality-distinctions
❖ evaluation
❖ extra-credit
❖ format
❖ functions
❖ hash-tables
❖ vectors
❖ variables-parameters-constants
❖ iteration
❖ lists
❖ loops
❖ macros
❖ mapcar-and-reduce
❖ multiple-values
❖ nil-false-empty
❖ scope-and-extent
❖ scoring-project
❖ special-forms
❖ strings
❖ structures
❖ threads
❖ triangle-project
❖ type-checking
- D. A 0F )
How to setup and use
Lisp-Koan
21. Setup Learning Environment
- D. A 0F )
Lisp-Koans is designed for Linux or MacOS
(It’s recommended to use virtual env software if you use windowssystem )
1. Download and setup HomeBrew or LinuxBrew
2. Install Roswell 3. Install fswatch
HomeBrew: https://brew.sh/ LinuxBrew: http://linuxbrew.sh/
brew install roswell brew install fswatch
5. Download Lisp-Koans
git clone https://github.com/google/lisp-koans.git
4. Making Path for Lisp Implementation
echo “export $PATH:$HOME/.roswell/impls/****/****/sbcl-bin/
1.4.4/bin”
Launch Lisp-koans (with file surveillance)
- D. A 0F )
MacOS: sh /path/to/lisp-koans/mediation-macos.sh
On Terminal Emulator
Linux: sh /path/to/lisp-koans/mediation-linux.sh
1. Launch lisp-koans surveilance agent
emacs /path/to/lisp-koans/koans/asserts.lsp
2. Open mediation target file with any text editor
(assert-true ___) → (assert-true t )
3. Edit(mediate) target file
TEST-TRUE-OR-FALSE requires more meditation
4. Check feedbacks
23. Mediation Example:extra-credit
- D. A 0F )
Impressions of Lisp-Koans
- D. A 0F )
It’s not good for absolute beginners
If they don’t know basic concept and syntax…
It’s not good for experts
There are not remarkable lessons for experts
It’s good for elementary learner
They can learn syntax and well-formed program in practical program
Less mediation codes
It’s not enough questions to understand CL. e.g.:
24. Information Sources of Common Lisp
- D. A 0F )
✦ Awesome-cl: https://awesome-cl.com/
✦ Quickdocs: http://quickdocs.org/
✦ Common Lisp Cookbook: http://cl-cookbook.sourceforge.net/
✦ LispHub: https://lisphub.jp/
✦ Common Lisp : http://ontolonomy.co.jp/books/
✦ Common Lisp Recipes: http://weitz.de/cl-recipes/
✦ Common Lisp
✦ Land of Lisp
Summary
- D. A 0F )
✤ Common Lisp is one of the direct of Lisp
✤ Common Lisp is not difficult at all
✤ Less good environment to learn Lisp
✤ Lisp-Koans is one of good learning material
✤ Lisp-Koans is designed for Elementary-Intermidiate level learners
✤ Not for absolute novice, not for advanced
✤ You can easily install lisp developing environment and Lisp-Koans
✤ Home(Linux)Brew→Roswell→SBCL
→fswatch
✤ Git→Lisp-Koans(Github)
25. Summary
- D. A 0F )
✤ Common Lisp is one of the direct of Lisp
✤ Common Lisp is not difficult at all
✤ Less good environment to learn Lisp
✤ Lisp-Koans is one of good learning material
✤ Lisp-Koans is designed for Elementary-Intermidiate level learners
✤ Not for absolute novice, not for advanced
✤ You can easily install lisp developing environment and Lisp-Koans
✤ Home(Linux)Brew→Roswell→SBCL
→fswatch
✤ Git→Lisp-Koans(Github)
Why don’t you dive into
the Lisp world with us?
- D. A 0F )