SlideShare a Scribd company logo
1 of 25
Download to read offline
- D. A 0F )
) ( 1
H 9 C 4 4 9
About me
- D. A 0F )
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
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 )
- 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
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) (
- D. A 0F )
Do you know Lisp ?
- D. A 0F )
Are you Lisp user?
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
Lisp in Recent Products
- D. A 0F ) ※Images are get from wikipedia
Lisp is
- D. A 0F )
Modern
Powerful
Beautiful
Language
- D. A 0F )
Is Lisp Difficult?
- D. A 0F )
Never!
Not at all!
- 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?
The Meaning of Koan
- D. A 0F )
1 7
Koan ( )
Wikipedia
The Meaning of Koan
- D. A 0F )
1 7
Koan ( )
Wikipedia
Drill
xx-Koans
- D. A 0F )
xx-Koans
- D. A 0F )
xx-Koans
- D. A 0F )
xx-Koans
- D. A 0F )
xx-Koans
- D. A 0F )
✤ Koan → ( )
✤ Mediation → ( )
✤ Thinking → ( )
✤ Expand awareness → ( )
✤ Enlightenment → ( )
Lisp-Koans
- D. A 0F ) https://github.com/google/lisp-koans
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
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 )
Mediation Example
- D. A 0F )
Mediation Example
- D. A 0F )
- D. A 0F )
Feedback Example
- D. A 0F )
Feedback Example
Feedback Example
- D. A 0F )
Mediation
- D. A 0F )
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
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
Mediation
- D. A 0F )
Mediation Example: format
- D. A 0F )
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.:
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)
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 )

More Related Content

What's hot

Neural Architectures for Named Entity Recognition
Neural Architectures for Named Entity RecognitionNeural Architectures for Named Entity Recognition
Neural Architectures for Named Entity RecognitionRrubaa Panchendrarajan
 
[LibreOffice conference 2021] The challenge of Using LibreOffice & Building L...
[LibreOffice conference 2021] The challenge of Using LibreOffice & Building L...[LibreOffice conference 2021] The challenge of Using LibreOffice & Building L...
[LibreOffice conference 2021] The challenge of Using LibreOffice & Building L...DaeHyun Sung
 
Dependency Parsing-based QA System for RDF and SPARQL
Dependency Parsing-based QA System for RDF and SPARQLDependency Parsing-based QA System for RDF and SPARQL
Dependency Parsing-based QA System for RDF and SPARQLFariz Darari
 
Building Blocks for Accessing Multilingual Data: CLDR
Building Blocks for Accessing Multilingual Data: CLDRBuilding Blocks for Accessing Multilingual Data: CLDR
Building Blocks for Accessing Multilingual Data: CLDRSteven R. Loomis
 
NumPy and SciPy for Data Mining and Data Analysis Including iPython, SciKits,...
NumPy and SciPy for Data Mining and Data Analysis Including iPython, SciKits,...NumPy and SciPy for Data Mining and Data Analysis Including iPython, SciKits,...
NumPy and SciPy for Data Mining and Data Analysis Including iPython, SciKits,...Ryan Rosario
 
NABU - Multilingual Graph-based Neural RDF Verbalizer
NABU - Multilingual Graph-based Neural RDF VerbalizerNABU - Multilingual Graph-based Neural RDF Verbalizer
NABU - Multilingual Graph-based Neural RDF VerbalizerDiegoMoussallem
 
SPARQL and the Open Linked Data initiative
SPARQL and the Open Linked Data initiativeSPARQL and the Open Linked Data initiative
SPARQL and the Open Linked Data initiativeFulvio Corno
 
Creating R Packages
Creating R PackagesCreating R Packages
Creating R Packagesjalle6
 
LISP: How I Learned To Stop Worrying And Love Parantheses
LISP: How I Learned To Stop Worrying And Love ParanthesesLISP: How I Learned To Stop Worrying And Love Parantheses
LISP: How I Learned To Stop Worrying And Love ParanthesesDominic Graefen
 
ICANN 50: IDN Root Zone LGR Generation Panels Workshop
ICANN 50: IDN Root Zone LGR Generation Panels WorkshopICANN 50: IDN Root Zone LGR Generation Panels Workshop
ICANN 50: IDN Root Zone LGR Generation Panels WorkshopICANN
 
C++11 Was Only the Beginning
C++11 Was Only the BeginningC++11 Was Only the Beginning
C++11 Was Only the BeginningMateusz Pusz
 

What's hot (16)

Neural Architectures for Named Entity Recognition
Neural Architectures for Named Entity RecognitionNeural Architectures for Named Entity Recognition
Neural Architectures for Named Entity Recognition
 
[LibreOffice conference 2021] The challenge of Using LibreOffice & Building L...
[LibreOffice conference 2021] The challenge of Using LibreOffice & Building L...[LibreOffice conference 2021] The challenge of Using LibreOffice & Building L...
[LibreOffice conference 2021] The challenge of Using LibreOffice & Building L...
 
Dependency Parsing-based QA System for RDF and SPARQL
Dependency Parsing-based QA System for RDF and SPARQLDependency Parsing-based QA System for RDF and SPARQL
Dependency Parsing-based QA System for RDF and SPARQL
 
Building Blocks for Accessing Multilingual Data: CLDR
Building Blocks for Accessing Multilingual Data: CLDRBuilding Blocks for Accessing Multilingual Data: CLDR
Building Blocks for Accessing Multilingual Data: CLDR
 
Practical NLP with Lisp
Practical NLP with LispPractical NLP with Lisp
Practical NLP with Lisp
 
Programming in hack
Programming in hackProgramming in hack
Programming in hack
 
NumPy and SciPy for Data Mining and Data Analysis Including iPython, SciKits,...
NumPy and SciPy for Data Mining and Data Analysis Including iPython, SciKits,...NumPy and SciPy for Data Mining and Data Analysis Including iPython, SciKits,...
NumPy and SciPy for Data Mining and Data Analysis Including iPython, SciKits,...
 
Python programming l2
Python programming l2Python programming l2
Python programming l2
 
NABU - Multilingual Graph-based Neural RDF Verbalizer
NABU - Multilingual Graph-based Neural RDF VerbalizerNABU - Multilingual Graph-based Neural RDF Verbalizer
NABU - Multilingual Graph-based Neural RDF Verbalizer
 
SPARQL and the Open Linked Data initiative
SPARQL and the Open Linked Data initiativeSPARQL and the Open Linked Data initiative
SPARQL and the Open Linked Data initiative
 
Introduction to R software, by Leire ibaibarriaga
Introduction to R software, by Leire ibaibarriaga Introduction to R software, by Leire ibaibarriaga
Introduction to R software, by Leire ibaibarriaga
 
Creating R Packages
Creating R PackagesCreating R Packages
Creating R Packages
 
OOPS Advanced
OOPS AdvancedOOPS Advanced
OOPS Advanced
 
LISP: How I Learned To Stop Worrying And Love Parantheses
LISP: How I Learned To Stop Worrying And Love ParanthesesLISP: How I Learned To Stop Worrying And Love Parantheses
LISP: How I Learned To Stop Worrying And Love Parantheses
 
ICANN 50: IDN Root Zone LGR Generation Panels Workshop
ICANN 50: IDN Root Zone LGR Generation Panels WorkshopICANN 50: IDN Root Zone LGR Generation Panels Workshop
ICANN 50: IDN Root Zone LGR Generation Panels Workshop
 
C++11 Was Only the Beginning
C++11 Was Only the BeginningC++11 Was Only the Beginning
C++11 Was Only the Beginning
 

Similar to Devfest kyoto2018 Lisp-Koans

Lisp, An Introduction.ppt
Lisp, An Introduction.pptLisp, An Introduction.ppt
Lisp, An Introduction.pptLuis Soza
 
LDAP : Theory and OpenLDAP implementation
LDAP : Theory and OpenLDAP implementationLDAP : Theory and OpenLDAP implementation
LDAP : Theory and OpenLDAP implementationOpen Source School
 
FISL XIV - The ELF File Format and the Linux Loader
FISL XIV - The ELF File Format and the Linux LoaderFISL XIV - The ELF File Format and the Linux Loader
FISL XIV - The ELF File Format and the Linux LoaderJohn Tortugo
 
Redesigning Common Lisp
Redesigning Common LispRedesigning Common Lisp
Redesigning Common Lispfukamachi
 
ADL Efforts Overview - xAPI Camp - Andy Johnson
ADL Efforts Overview - xAPI Camp - Andy JohnsonADL Efforts Overview - xAPI Camp - Andy Johnson
ADL Efforts Overview - xAPI Camp - Andy JohnsonAaron Silvers
 
Stuff we do with OSS in libraries (Bergen, 2009)
Stuff we do with OSS in libraries (Bergen, 2009)Stuff we do with OSS in libraries (Bergen, 2009)
Stuff we do with OSS in libraries (Bergen, 2009)Nicolas Morin
 
Switching from lispstat to r
Switching from lispstat to rSwitching from lispstat to r
Switching from lispstat to rAjay Ohri
 
Embrace dynamic PHP
Embrace dynamic PHPEmbrace dynamic PHP
Embrace dynamic PHPPaul Houle
 
A brief introduction to lisp language
A brief introduction to lisp languageA brief introduction to lisp language
A brief introduction to lisp languageDavid Gu
 
Open Source .NET
Open Source .NETOpen Source .NET
Open Source .NETOnyxfish
 
A Comparison Between Python APIs For RDF Processing
A Comparison Between Python APIs For RDF ProcessingA Comparison Between Python APIs For RDF Processing
A Comparison Between Python APIs For RDF Processinglucianb
 
LF_APIStrat17_Don't Repeat Yourself - Your API is Your Documentation
LF_APIStrat17_Don't Repeat Yourself - Your API is Your DocumentationLF_APIStrat17_Don't Repeat Yourself - Your API is Your Documentation
LF_APIStrat17_Don't Repeat Yourself - Your API is Your DocumentationLF_APIStrat
 
Presentation of OpenNLP
Presentation of OpenNLPPresentation of OpenNLP
Presentation of OpenNLPRobert Viseur
 
How to migrate SourcePro apps from Solaris to Linux
How to migrate SourcePro apps from Solaris to LinuxHow to migrate SourcePro apps from Solaris to Linux
How to migrate SourcePro apps from Solaris to LinuxRogue Wave Software
 
OWL: Yet to arrive on the Web of Data?
OWL: Yet to arrive on the Web of Data?OWL: Yet to arrive on the Web of Data?
OWL: Yet to arrive on the Web of Data?Aidan Hogan
 

Similar to Devfest kyoto2018 Lisp-Koans (20)

intro.ppt
intro.pptintro.ppt
intro.ppt
 
Lisp, An Introduction.ppt
Lisp, An Introduction.pptLisp, An Introduction.ppt
Lisp, An Introduction.ppt
 
intro.ppt
intro.pptintro.ppt
intro.ppt
 
LDAP : Theory and OpenLDAP implementation
LDAP : Theory and OpenLDAP implementationLDAP : Theory and OpenLDAP implementation
LDAP : Theory and OpenLDAP implementation
 
FISL XIV - The ELF File Format and the Linux Loader
FISL XIV - The ELF File Format and the Linux LoaderFISL XIV - The ELF File Format and the Linux Loader
FISL XIV - The ELF File Format and the Linux Loader
 
Redesigning Common Lisp
Redesigning Common LispRedesigning Common Lisp
Redesigning Common Lisp
 
Lisp
LispLisp
Lisp
 
ADL Efforts Overview - xAPI Camp - Andy Johnson
ADL Efforts Overview - xAPI Camp - Andy JohnsonADL Efforts Overview - xAPI Camp - Andy Johnson
ADL Efforts Overview - xAPI Camp - Andy Johnson
 
Stuff we do with OSS in libraries (Bergen, 2009)
Stuff we do with OSS in libraries (Bergen, 2009)Stuff we do with OSS in libraries (Bergen, 2009)
Stuff we do with OSS in libraries (Bergen, 2009)
 
Switching from lispstat to r
Switching from lispstat to rSwitching from lispstat to r
Switching from lispstat to r
 
Embrace dynamic PHP
Embrace dynamic PHPEmbrace dynamic PHP
Embrace dynamic PHP
 
How DSL works on Ruby
How DSL works on RubyHow DSL works on Ruby
How DSL works on Ruby
 
A brief introduction to lisp language
A brief introduction to lisp languageA brief introduction to lisp language
A brief introduction to lisp language
 
Open Source .NET
Open Source .NETOpen Source .NET
Open Source .NET
 
A Comparison Between Python APIs For RDF Processing
A Comparison Between Python APIs For RDF ProcessingA Comparison Between Python APIs For RDF Processing
A Comparison Between Python APIs For RDF Processing
 
OOoCon Lpod
OOoCon LpodOOoCon Lpod
OOoCon Lpod
 
LF_APIStrat17_Don't Repeat Yourself - Your API is Your Documentation
LF_APIStrat17_Don't Repeat Yourself - Your API is Your DocumentationLF_APIStrat17_Don't Repeat Yourself - Your API is Your Documentation
LF_APIStrat17_Don't Repeat Yourself - Your API is Your Documentation
 
Presentation of OpenNLP
Presentation of OpenNLPPresentation of OpenNLP
Presentation of OpenNLP
 
How to migrate SourcePro apps from Solaris to Linux
How to migrate SourcePro apps from Solaris to LinuxHow to migrate SourcePro apps from Solaris to Linux
How to migrate SourcePro apps from Solaris to Linux
 
OWL: Yet to arrive on the Web of Data?
OWL: Yet to arrive on the Web of Data?OWL: Yet to arrive on the Web of Data?
OWL: Yet to arrive on the Web of Data?
 

Recently uploaded

HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxEsquimalt MFRC
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxAmanpreet Kaur
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxJisc
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxDr. Sarita Anand
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Association for Project Management
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptxMaritesTamaniVerdade
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseAnaAcapella
 
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdfVishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdfssuserdda66b
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentationcamerronhm
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin ClassesCeline George
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxcallscotland1987
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024Elizabeth Walsh
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - Englishneillewis46
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 

Recently uploaded (20)

HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdfVishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 

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
  • 12. xx-Koans - D. A 0F ) xx-Koans - D. A 0F )
  • 13. xx-Koans - D. A 0F ) xx-Koans - D. A 0F )
  • 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 )
  • 17. Mediation Example - D. A 0F ) Mediation Example - D. A 0F )
  • 18. - D. A 0F ) Feedback Example - D. A 0F ) Feedback Example
  • 19. Feedback Example - D. A 0F ) Mediation - 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
  • 22. Mediation - D. A 0F ) Mediation Example: format - D. A 0F )
  • 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 )