Suche senden
Hochladen
Writing DSL in Clojure
•
8 gefällt mir
•
6,539 views
Misha Kozik
Folgen
clojure, dsl, tree, programming
Weniger lesen
Mehr lesen
Software
Melden
Teilen
Melden
Teilen
1 von 24
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Sql operator
Sql operator
Pooja Dixit
SQL
SQL
Bhandari Nawaraj
Linguagem C 10 Arquivos
Linguagem C 10 Arquivos
Regis Magalhães
MYSQL
MYSQL
Ankush Jain
SQL practice questions - set 3
SQL practice questions - set 3
Mohd Tousif
Multiple object detection
Multiple object detection
SAURABH KUMAR
K MEANS CLUSTERING.pptx
K MEANS CLUSTERING.pptx
kibriaswe
Data Manipulation Language
Data Manipulation Language
Jas Singh Bhasin
Empfohlen
Sql operator
Sql operator
Pooja Dixit
SQL
SQL
Bhandari Nawaraj
Linguagem C 10 Arquivos
Linguagem C 10 Arquivos
Regis Magalhães
MYSQL
MYSQL
Ankush Jain
SQL practice questions - set 3
SQL practice questions - set 3
Mohd Tousif
Multiple object detection
Multiple object detection
SAURABH KUMAR
K MEANS CLUSTERING.pptx
K MEANS CLUSTERING.pptx
kibriaswe
Data Manipulation Language
Data Manipulation Language
Jas Singh Bhasin
Packages,interfaces and exceptions
Packages,interfaces and exceptions
Mavoori Soshmitha
Effective testing with pytest
Effective testing with pytest
Hector Canto
Computer Science:Java jdbc
Computer Science:Java jdbc
St Mary's College,Thrissur,Kerala
Basics of Object Oriented Programming in Python
Basics of Object Oriented Programming in Python
Sujith Kumar
String.ppt
String.ppt
ajeela mushtaq
Advance OOP concepts in Python
Advance OOP concepts in Python
Sujith Kumar
Dapper performance
Dapper performance
Suresh Loganatha
Java arrays
Java arrays
BHUVIJAYAVELU
Java Generics - by Example
Java Generics - by Example
CodeOps Technologies LLP
MySQL Views
MySQL Views
Reggie Niccolo Santos
Dbms
Dbms
Prof. Dr. K. Adisesha
SQL practice questions set - 2
SQL practice questions set - 2
Mohd Tousif
BD I - Aula 08 B - Algebra Relacional - Exercicios Resolucao
BD I - Aula 08 B - Algebra Relacional - Exercicios Resolucao
Rodrigo Kiyoshi Saito
Modules in Python Programming
Modules in Python Programming
sambitmandal
04. constructor & destructor
04. constructor & destructor
Haresh Jaiswal
Python OOPs
Python OOPs
Binay Kumar Ray
Database connectivity in python
Database connectivity in python
baabtra.com - No. 1 supplier of quality freshers
Introduction to SQL
Introduction to SQL
Ehsan Hamzei
SQL, Embedded SQL, Dynamic SQL and SQLJ
SQL, Embedded SQL, Dynamic SQL and SQLJ
Dharita Chokshi
Arrays C#
Arrays C#
Raghuveer Guthikonda
DSL in Clojure
DSL in Clojure
Misha Kozik
Clojure for Java developers
Clojure for Java developers
John Stevenson
Weitere ähnliche Inhalte
Was ist angesagt?
Packages,interfaces and exceptions
Packages,interfaces and exceptions
Mavoori Soshmitha
Effective testing with pytest
Effective testing with pytest
Hector Canto
Computer Science:Java jdbc
Computer Science:Java jdbc
St Mary's College,Thrissur,Kerala
Basics of Object Oriented Programming in Python
Basics of Object Oriented Programming in Python
Sujith Kumar
String.ppt
String.ppt
ajeela mushtaq
Advance OOP concepts in Python
Advance OOP concepts in Python
Sujith Kumar
Dapper performance
Dapper performance
Suresh Loganatha
Java arrays
Java arrays
BHUVIJAYAVELU
Java Generics - by Example
Java Generics - by Example
CodeOps Technologies LLP
MySQL Views
MySQL Views
Reggie Niccolo Santos
Dbms
Dbms
Prof. Dr. K. Adisesha
SQL practice questions set - 2
SQL practice questions set - 2
Mohd Tousif
BD I - Aula 08 B - Algebra Relacional - Exercicios Resolucao
BD I - Aula 08 B - Algebra Relacional - Exercicios Resolucao
Rodrigo Kiyoshi Saito
Modules in Python Programming
Modules in Python Programming
sambitmandal
04. constructor & destructor
04. constructor & destructor
Haresh Jaiswal
Python OOPs
Python OOPs
Binay Kumar Ray
Database connectivity in python
Database connectivity in python
baabtra.com - No. 1 supplier of quality freshers
Introduction to SQL
Introduction to SQL
Ehsan Hamzei
SQL, Embedded SQL, Dynamic SQL and SQLJ
SQL, Embedded SQL, Dynamic SQL and SQLJ
Dharita Chokshi
Arrays C#
Arrays C#
Raghuveer Guthikonda
Was ist angesagt?
(20)
Packages,interfaces and exceptions
Packages,interfaces and exceptions
Effective testing with pytest
Effective testing with pytest
Computer Science:Java jdbc
Computer Science:Java jdbc
Basics of Object Oriented Programming in Python
Basics of Object Oriented Programming in Python
String.ppt
String.ppt
Advance OOP concepts in Python
Advance OOP concepts in Python
Dapper performance
Dapper performance
Java arrays
Java arrays
Java Generics - by Example
Java Generics - by Example
MySQL Views
MySQL Views
Dbms
Dbms
SQL practice questions set - 2
SQL practice questions set - 2
BD I - Aula 08 B - Algebra Relacional - Exercicios Resolucao
BD I - Aula 08 B - Algebra Relacional - Exercicios Resolucao
Modules in Python Programming
Modules in Python Programming
04. constructor & destructor
04. constructor & destructor
Python OOPs
Python OOPs
Database connectivity in python
Database connectivity in python
Introduction to SQL
Introduction to SQL
SQL, Embedded SQL, Dynamic SQL and SQLJ
SQL, Embedded SQL, Dynamic SQL and SQLJ
Arrays C#
Arrays C#
Andere mochten auch
DSL in Clojure
DSL in Clojure
Misha Kozik
Clojure for Java developers
Clojure for Java developers
John Stevenson
Clojure: an overview
Clojure: an overview
Larry Diehl
lightweight SOA with web widgets
lightweight SOA with web widgets
Phil Calçado
Clojure, Web and Luminus
Clojure, Web and Luminus
Edward Tsech
Reactive Machine Learning and Functional Programming
Reactive Machine Learning and Functional Programming
Jeff Smith
ETL in Clojure
ETL in Clojure
Dmitriy Morozov
A Field Guide to DSL Design in Scala
A Field Guide to DSL Design in Scala
Tomer Gabel
Sentiments Improvement
Sentiments Improvement
Misha Kozik
Hammurabi
Hammurabi
Mario Fusco
3 years with Clojure
3 years with Clojure
Michael Klishin
Clojure: The Art of Abstraction
Clojure: The Art of Abstraction
Alex Miller
Getting started with Clojure
Getting started with Clojure
John Stevenson
Domain-Specific Languages
Domain-Specific Languages
Javier Canovas
동시성 프로그래밍 하기 좋은 Clojure
동시성 프로그래밍 하기 좋은 Clojure
Eunmin Kim
Data science Big Data
Data science Big Data
sreekanthricky
Railway Oriented Programming
Railway Oriented Programming
Scott Wlaschin
Creating Domain Specific Languages in Python
Creating Domain Specific Languages in Python
Siddhi
Andere mochten auch
(18)
DSL in Clojure
DSL in Clojure
Clojure for Java developers
Clojure for Java developers
Clojure: an overview
Clojure: an overview
lightweight SOA with web widgets
lightweight SOA with web widgets
Clojure, Web and Luminus
Clojure, Web and Luminus
Reactive Machine Learning and Functional Programming
Reactive Machine Learning and Functional Programming
ETL in Clojure
ETL in Clojure
A Field Guide to DSL Design in Scala
A Field Guide to DSL Design in Scala
Sentiments Improvement
Sentiments Improvement
Hammurabi
Hammurabi
3 years with Clojure
3 years with Clojure
Clojure: The Art of Abstraction
Clojure: The Art of Abstraction
Getting started with Clojure
Getting started with Clojure
Domain-Specific Languages
Domain-Specific Languages
동시성 프로그래밍 하기 좋은 Clojure
동시성 프로그래밍 하기 좋은 Clojure
Data science Big Data
Data science Big Data
Railway Oriented Programming
Railway Oriented Programming
Creating Domain Specific Languages in Python
Creating Domain Specific Languages in Python
Kürzlich hochgeladen
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
Safe Software
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
OnePlan Solutions
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
Dinusha Kumarasiri
Odoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting Service
Devintelle Consulting Service Pvt Ltd Odoo OpenERP
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
Christian Birchler
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
confluent
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
31events.com
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
Marharyta Nedzelska
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
VICTOR MAESTRE RAMIREZ
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
umasea
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
Technogeeks
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
Diego Iván Oliveros Acosta
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
Christoph Pohl
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
Velvetech LLC
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
smiwainfosol
MYjobs Presentation Django-based project
MYjobs Presentation Django-based project
AnoyGreter
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
andrehoraa
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
Hr365.us smith
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Natan Silnitsky
Kürzlich hochgeladen
(20)
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
Odoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting Service
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
MYjobs Presentation Django-based project
MYjobs Presentation Django-based project
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Writing DSL in Clojure
1.
DSL in Clojure Misha
Kozik @mishadoff
2.
developer domain expert
3.
Abstraction
4.
not Turing Complete
5.
DSL Example: SQL Apache
Calcite
6.
DSL Example: Hadoop
7.
DSL Example: Cascading
8.
DSL Example: Cascalog
9.
DSL Example: Hiccup
10.
DSL Example: Lein
11.
DSL Example: Regexp
12.
DSL Example: TimeUnit
13.
DSL Example: ->
14.
Demo: Binary Tree
15.
0 1 2 3 4
5 6 7 98NIL NIL NIL Demo: Binary Tree
16.
Internal DSL: Tree …well
that’s verbose…
17.
Internal DSL: Tree …from
Java with Love…
18.
Internal DSL: Tree i
-> (2i + 1, 2i + 2)
19.
Internal DSL: Tree Lisp
way
20.
Internal DSL: Tree
21.
External DSL: Tree wow,
such declarative
22.
Generative DSL: Tree
23.
Summary
24.
Questions?
Jetzt herunterladen