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
 
intro.ppt
intro.pptintro.ppt
intro.ppt
 
Lisp, An Introduction.ppt
Lisp, An Introduction.pptLisp, An Introduction.ppt
Lisp, An Introduction.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

Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991RKavithamani
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 

Recently uploaded (20)

Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 

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 )