Enviar pesquisa
Carregar
Meta-objective Lisp @名古屋 Reject 会議
•
1 gostou
•
940 visualizações
D
dico_leque
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 20
Baixar agora
Baixar para ler offline
Recomendados
Anti patterns
Anti patterns
Alex Tumanoff
Java Cheat Sheet
Java Cheat Sheet
Saeid Zebardast
Refactoring
Refactoring
Reder
Full Stack Clojure
Full Stack Clojure
Michiel Borkent
Collection Core Concept
Collection Core Concept
Rays Technologies
Rcpp11 useR2014
Rcpp11 useR2014
Romain Francois
CodeFest 2014. Axel Rauschmayer — JavaScript’s variables: scopes, environment...
CodeFest 2014. Axel Rauschmayer — JavaScript’s variables: scopes, environment...
CodeFest
Reactive programming with RxSwift
Reactive programming with RxSwift
Scott Gardner
Recomendados
Anti patterns
Anti patterns
Alex Tumanoff
Java Cheat Sheet
Java Cheat Sheet
Saeid Zebardast
Refactoring
Refactoring
Reder
Full Stack Clojure
Full Stack Clojure
Michiel Borkent
Collection Core Concept
Collection Core Concept
Rays Technologies
Rcpp11 useR2014
Rcpp11 useR2014
Romain Francois
CodeFest 2014. Axel Rauschmayer — JavaScript’s variables: scopes, environment...
CodeFest 2014. Axel Rauschmayer — JavaScript’s variables: scopes, environment...
CodeFest
Reactive programming with RxSwift
Reactive programming with RxSwift
Scott Gardner
Scheme 核心概念(一)
Scheme 核心概念(一)
維然 柯維然
Advanced JavaScript Techniques
Advanced JavaScript Techniques
Hoat Le
Initial Java Core Concept
Initial Java Core Concept
Rays Technologies
Gaucheで本を作る
Gaucheで本を作る
guest7a66b8
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Sungchul Park
Slides
Slides
shahriar-ro
ClojureScript for the web
ClojureScript for the web
Michiel Borkent
Functional Algebra: Monoids Applied
Functional Algebra: Monoids Applied
Susan Potter
JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall
JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall
Yuichi Sakuraba
Rainer Grimm, “Functional Programming in C++11”
Rainer Grimm, “Functional Programming in C++11”
Platonov Sergey
ClojureScript loves React, DomCode May 26 2015
ClojureScript loves React, DomCode May 26 2015
Michiel Borkent
Lrz kurse: r as superglue
Lrz kurse: r as superglue
Ferdinand Jamitzky
Introduction to java 8 stream api
Introduction to java 8 stream api
Vladislav sidlyarevich
Extend R with Rcpp!!!
Extend R with Rcpp!!!
mickey24
Clojure made simple - Lightning talk
Clojure made simple - Lightning talk
John Stevenson
GUL UC3M - Introduction to functional programming
GUL UC3M - Introduction to functional programming
David Muñoz Díaz
Java8 stream
Java8 stream
koji lin
Luis Atencio on RxJS
Luis Atencio on RxJS
Luis Atencio
Javascript engine performance
Javascript engine performance
Duoyi Wu
Безопасность интернет-приложений осень 2013 лекция 10
Безопасность интернет-приложений осень 2013 лекция 10
Technopark
lisps - A Lisp Interpreter written in Postscript
lisps - A Lisp Interpreter written in Postscript
Gabriel Grill
How to build a realtime, WebSockets-enabled chat in less than 5 minutes
How to build a realtime, WebSockets-enabled chat in less than 5 minutes
Derek Edwards
Mais conteúdo relacionado
Mais procurados
Scheme 核心概念(一)
Scheme 核心概念(一)
維然 柯維然
Advanced JavaScript Techniques
Advanced JavaScript Techniques
Hoat Le
Initial Java Core Concept
Initial Java Core Concept
Rays Technologies
Gaucheで本を作る
Gaucheで本を作る
guest7a66b8
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Sungchul Park
Slides
Slides
shahriar-ro
ClojureScript for the web
ClojureScript for the web
Michiel Borkent
Functional Algebra: Monoids Applied
Functional Algebra: Monoids Applied
Susan Potter
JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall
JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall
Yuichi Sakuraba
Rainer Grimm, “Functional Programming in C++11”
Rainer Grimm, “Functional Programming in C++11”
Platonov Sergey
ClojureScript loves React, DomCode May 26 2015
ClojureScript loves React, DomCode May 26 2015
Michiel Borkent
Lrz kurse: r as superglue
Lrz kurse: r as superglue
Ferdinand Jamitzky
Introduction to java 8 stream api
Introduction to java 8 stream api
Vladislav sidlyarevich
Extend R with Rcpp!!!
Extend R with Rcpp!!!
mickey24
Clojure made simple - Lightning talk
Clojure made simple - Lightning talk
John Stevenson
GUL UC3M - Introduction to functional programming
GUL UC3M - Introduction to functional programming
David Muñoz Díaz
Java8 stream
Java8 stream
koji lin
Luis Atencio on RxJS
Luis Atencio on RxJS
Luis Atencio
Javascript engine performance
Javascript engine performance
Duoyi Wu
Безопасность интернет-приложений осень 2013 лекция 10
Безопасность интернет-приложений осень 2013 лекция 10
Technopark
Mais procurados
(20)
Scheme 核心概念(一)
Scheme 核心概念(一)
Advanced JavaScript Techniques
Advanced JavaScript Techniques
Initial Java Core Concept
Initial Java Core Concept
Gaucheで本を作る
Gaucheで本を作る
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Slides
Slides
ClojureScript for the web
ClojureScript for the web
Functional Algebra: Monoids Applied
Functional Algebra: Monoids Applied
JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall
JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall
Rainer Grimm, “Functional Programming in C++11”
Rainer Grimm, “Functional Programming in C++11”
ClojureScript loves React, DomCode May 26 2015
ClojureScript loves React, DomCode May 26 2015
Lrz kurse: r as superglue
Lrz kurse: r as superglue
Introduction to java 8 stream api
Introduction to java 8 stream api
Extend R with Rcpp!!!
Extend R with Rcpp!!!
Clojure made simple - Lightning talk
Clojure made simple - Lightning talk
GUL UC3M - Introduction to functional programming
GUL UC3M - Introduction to functional programming
Java8 stream
Java8 stream
Luis Atencio on RxJS
Luis Atencio on RxJS
Javascript engine performance
Javascript engine performance
Безопасность интернет-приложений осень 2013 лекция 10
Безопасность интернет-приложений осень 2013 лекция 10
Destaque
lisps - A Lisp Interpreter written in Postscript
lisps - A Lisp Interpreter written in Postscript
Gabriel Grill
How to build a realtime, WebSockets-enabled chat in less than 5 minutes
How to build a realtime, WebSockets-enabled chat in less than 5 minutes
Derek Edwards
Scheme language brief introduction
Scheme language brief introduction
Carpen ZJ Wang
Introduction To Functional Programming with Scheme - LeanDog Edition
Introduction To Functional Programming with Scheme - LeanDog Edition
Doc Norton
Scheme Programming Language
Scheme Programming Language
Reham AlBlehid
Python master class 3
Python master class 3
Chathuranga Bandara
Dive into Python Class
Dive into Python Class
Jim Yeh
Flask for cs students
Flask for cs students
Jennifer Rubinovitz
Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18
Lar21
Writing your first web app using Python and Flask
Writing your first web app using Python and Flask
Danielle Madeley
Lisp Programming Languge
Lisp Programming Languge
Yaser Jaradeh
Learn a language : LISP
Learn a language : LISP
Devnology
The Awesome Python Class Part-4
The Awesome Python Class Part-4
Binay Kumar Ray
Redis, another step on the road
Redis, another step on the road
Yi-Feng Tzeng
LISP:Program structure in lisp
LISP:Program structure in lisp
DataminingTools Inc
Basic lisp
Basic lisp
Arvind sahu
Python master class 2
Python master class 2
Chathuranga Bandara
Building Scalable, Distributed Job Queues with Redis and Redis::Client
Building Scalable, Distributed Job Queues with Redis and Redis::Client
Mike Friedman
The Awesome Python Class Part-5
The Awesome Python Class Part-5
Binay Kumar Ray
Introduction To Lisp
Introduction To Lisp
kyleburton
Destaque
(20)
lisps - A Lisp Interpreter written in Postscript
lisps - A Lisp Interpreter written in Postscript
How to build a realtime, WebSockets-enabled chat in less than 5 minutes
How to build a realtime, WebSockets-enabled chat in less than 5 minutes
Scheme language brief introduction
Scheme language brief introduction
Introduction To Functional Programming with Scheme - LeanDog Edition
Introduction To Functional Programming with Scheme - LeanDog Edition
Scheme Programming Language
Scheme Programming Language
Python master class 3
Python master class 3
Dive into Python Class
Dive into Python Class
Flask for cs students
Flask for cs students
Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18
Writing your first web app using Python and Flask
Writing your first web app using Python and Flask
Lisp Programming Languge
Lisp Programming Languge
Learn a language : LISP
Learn a language : LISP
The Awesome Python Class Part-4
The Awesome Python Class Part-4
Redis, another step on the road
Redis, another step on the road
LISP:Program structure in lisp
LISP:Program structure in lisp
Basic lisp
Basic lisp
Python master class 2
Python master class 2
Building Scalable, Distributed Job Queues with Redis and Redis::Client
Building Scalable, Distributed Job Queues with Redis and Redis::Client
The Awesome Python Class Part-5
The Awesome Python Class Part-5
Introduction To Lisp
Introduction To Lisp
Semelhante a Meta-objective Lisp @名古屋 Reject 会議
Lisp Macros in 20 Minutes (Featuring Clojure)
Lisp Macros in 20 Minutes (Featuring Clojure)
Phil Calçado
Pune Clojure Course Outline
Pune Clojure Course Outline
Baishampayan Ghose
Clojure for Java developers - Stockholm
Clojure for Java developers - Stockholm
Jan Kronquist
Hw09 Hadoop + Clojure
Hw09 Hadoop + Clojure
Cloudera, Inc.
Hadoop + Clojure
Hadoop + Clojure
elliando dias
CL metaprogramming
CL metaprogramming
dudarev
Clojure: Practical functional approach on JVM
Clojure: Practical functional approach on JVM
sunng87
(map Clojure everyday-tasks)
(map Clojure everyday-tasks)
Jacek Laskowski
Refactoring to Macros with Clojure
Refactoring to Macros with Clojure
Dmitry Buzdin
Real Time Big Data Management
Real Time Big Data Management
Albert Bifet
EROSについて
EROSについて
stibear (stibear1996)
Scala in Places API
Scala in Places API
Łukasz Bałamut
Clojure Intro
Clojure Intro
thnetos
Programming Lisp Clojure - 2장 : 클로저 둘러보기
Programming Lisp Clojure - 2장 : 클로저 둘러보기
JangHyuk You
Continuation Passing Style and Macros in Clojure - Jan 2012
Continuation Passing Style and Macros in Clojure - Jan 2012
Leonardo Borges
Pointcuts and Analysis
Pointcuts and Analysis
Wiwat Ruengmee
A Sceptical Guide to Functional Programming
A Sceptical Guide to Functional Programming
Garth Gilmour
Lisp как универсальная обертка
Lisp как универсальная обертка
Vsevolod Dyomkin
Clojure made really really simple
Clojure made really really simple
John Stevenson
Demystifying functional programming with Scala
Demystifying functional programming with Scala
Denis
Semelhante a Meta-objective Lisp @名古屋 Reject 会議
(20)
Lisp Macros in 20 Minutes (Featuring Clojure)
Lisp Macros in 20 Minutes (Featuring Clojure)
Pune Clojure Course Outline
Pune Clojure Course Outline
Clojure for Java developers - Stockholm
Clojure for Java developers - Stockholm
Hw09 Hadoop + Clojure
Hw09 Hadoop + Clojure
Hadoop + Clojure
Hadoop + Clojure
CL metaprogramming
CL metaprogramming
Clojure: Practical functional approach on JVM
Clojure: Practical functional approach on JVM
(map Clojure everyday-tasks)
(map Clojure everyday-tasks)
Refactoring to Macros with Clojure
Refactoring to Macros with Clojure
Real Time Big Data Management
Real Time Big Data Management
EROSについて
EROSについて
Scala in Places API
Scala in Places API
Clojure Intro
Clojure Intro
Programming Lisp Clojure - 2장 : 클로저 둘러보기
Programming Lisp Clojure - 2장 : 클로저 둘러보기
Continuation Passing Style and Macros in Clojure - Jan 2012
Continuation Passing Style and Macros in Clojure - Jan 2012
Pointcuts and Analysis
Pointcuts and Analysis
A Sceptical Guide to Functional Programming
A Sceptical Guide to Functional Programming
Lisp как универсальная обертка
Lisp как универсальная обертка
Clojure made really really simple
Clojure made really really simple
Demystifying functional programming with Scala
Demystifying functional programming with Scala
Último
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Zilliz
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
apidays
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
apidays
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
The Digital Insurer
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Juan lago vázquez
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
sudhanshuwaghmare1
Architecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Jeffrey Haguewood
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
danishmna97
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
rafiqahmad00786416
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
Dropbox
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
DianaGray10
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Orbitshub
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
sammart93
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
UiPathCommunity
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
Sandro Moreira
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Product Anonymous
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
The Digital Insurer
Último
(20)
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
Architecting Cloud Native Applications
Architecting Cloud Native Applications
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
Meta-objective Lisp @名古屋 Reject 会議
1.
Meta-objective
Lisp @dico_leque 2011/02/26 NagoyaRejectKaigi
2.
n
Common Lisp Object System Metaobject Protocol n Gauche Scheme interpreter
3.
Lisp n
CLOS -- Common Lisp Object System n n ISLISP Object System -- ILOS n Ruby n ANSI Common Lisp Lisp
4.
CLOS (1) n
n (define-class <foo> () ((slot1) (slot2))) n n (define-class <baz> (<foo> <bar>) ())
5.
CLOS (2) n
generic- function n (define-generic foo) (define-method foo ((x <sequence>) (y <sequence>)) 0) (define-method foo ((x <sequence>) (y <string>)) 1) (define-method foo ((x <string>) (y <sequence>)) 2) (define-method foo ((x <string>) (y <string>)) 3) (foo '() '()) ; => 0 (foo '() "a") ; => 1 (foo "a" '#()) ; => 2 (foo "a" "b") ; => 3
6.
CLOS (3) n
CLOS CLOS n n
7.
MOP n
Metaobject Protocol n introspection: API n intercessory: API n intercessory
8.
Metaobjects n
n <class> <generic> <method> n (make <class>) (apply-generic-function <generic>)
9.
(1) n n
<singleton-meta> make n (instance-of < >) n singleton singleton
10.
(1) (define-class <singleton-meta> (<class>)
(%the-singleton-instance) ) (define-method make ((class <singleton-meta>) . initargs) ...) (define-method instance-of ((class <singleton-meta>) . initargs) (apply make class initargs)) (define-class <singleton-mixin> () () :metaclass <singleton-meta>) from gauche/lib/gauche/mop/singleton.scm
11.
(2) O/R n
DB n <orm> DB
12.
(2) O/R (define-class <orm>
(<class>) ()) (define-method compute-slots ((cl <orm>)) (let ((super-slots (next-method))) (lset-union (lambda (x y) (eq? (car x) (car y))) (map (lambda (name) `(,name :init-keyword ,(make-keyword name) :accessor ,(string->symbol (format "~A-of" name)))) (load-slot-names cl)) super-slots))) (define-class <foo> () () :metaclass <orm>) ※ load-slot-names
13.
(3) n
Ruby n n (eql 0) 0 n <generic> (eql x)
14.
(3) (define-generic fact
:class <eql-specializable-generic>) (define-method fact ((n (eql 0))) 1) (define-method fact ((n <integer>)) (* n (fact (- n 1))))
15.
(3) (define-class <eql-specializer> (<class>)
((object :getter eql-specializer-object :init-keyword :eql-specializer-object))) (define (eql obj) (make <eql-specializer> :eql-specializer-object obj)) (define-class <eql-specializable-generic> (<generic>) ()) (define-method compute-applicable-methods ((gf <eql-specializable-generic>) args) ...) (define-method sort-applicable-methods ((gf <eql-specializable-generic>) methods args) ...) ※ 60 http://d.hatena.ne.jp/leque/20110105/p1
16.
CLOS / MOP n
n DB n n validator
17.
CLOS / MOP n
n Pascal Costanza, Charlotte Herzeel, Jorge Vallejos, Theo D’Hondt: “Filtered dispatch”, Proceedings of the 2008 symposium on Dynamic languages n n before, after, around n
18.
CLOS / MOP n
n n lazy initialization n
19.
DSL
MOP n DSL Domain n
20.
n
Lisper DSL n CLOS MOP
Baixar agora