Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Devfest kyoto2018 Lisp-Koans

310 views

Published on

A presentation material for DevFest Kyoto 2018.
About how to learn CommonLisp on Lisp-Koans which is a repo of Github/Google.

Published in: Education
  • Be the first to comment

  • Be the first to like this

Devfest kyoto2018 Lisp-Koans

  1. 1. - D. A 0F ) ) ( 1 H 9 C 4 4 9 About me - D. A 0F )
  2. 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. 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. 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. 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. 6. - D. A 0F ) Do you know Lisp ? - D. A 0F ) Are you Lisp user?
  7. 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. 8. Lisp in Recent Products - D. A 0F ) ※Images are get from wikipedia Lisp is - D. A 0F ) Modern Powerful Beautiful Language
  9. 9. - D. A 0F ) Is Lisp Difficult? - D. A 0F ) Never! Not at all!
  10. 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. 11. The Meaning of Koan - D. A 0F ) 1 7 Koan ( ) Wikipedia The Meaning of Koan - D. A 0F ) 1 7 Koan ( ) Wikipedia Drill
  12. 12. xx-Koans - D. A 0F ) xx-Koans - D. A 0F )
  13. 13. xx-Koans - D. A 0F ) xx-Koans - D. A 0F )
  14. 14. xx-Koans - D. A 0F ) ✤ Koan → ( ) ✤ Mediation → ( ) ✤ Thinking → ( ) ✤ Expand awareness → ( ) ✤ Enlightenment → ( ) Lisp-Koans - D. A 0F ) https://github.com/google/lisp-koans
  15. 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. 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 )
  17. 17. Mediation Example - D. A 0F ) Mediation Example - D. A 0F )
  18. 18. - D. A 0F ) Feedback Example - D. A 0F ) Feedback Example
  19. 19. Feedback Example - D. A 0F ) Mediation - D. A 0F )
  20. 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. 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
  22. 22. Mediation - D. A 0F ) Mediation Example: format - D. A 0F )
  23. 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. 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. 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 )

×