SlideShare a Scribd company logo
www.pineapple.cc
www.pineapple.cc
Function + Action = Interaction
Ichiroh Kanaya*, Mayuko Kanazawa**, Masataka Imura***
*Graduate School of Engineering, Osaka University
**Department of Image Arts, Kobe Design University
***School of Science and Technology, Kwansei Gakuin University
www.pineapple.cc
Function + Action = Interaction (2015)
www.pineapple.cc
Artist/Producer/Director
Scientist/Engineer/Hacker
Scientist/Engineer/Designer
Artist’s Wants
Poor Engineer
www.pineapple.cc
www.pineapple.cc
Shooting A Moving Target
Shiro Kawai, Square USA
Proc. Japan Lisp User Group Meeting, 2000.
www.pineapple.cc
–Shiro Kawai
The balance of integrity and flexibility is subtle but important. In our size
of production, sometimes you need to allow one part of the production to
work inconsistently with another, during a transition (and if things keep
changing, it is always a transition period!) If you emphasize integrity and
consistency too much, things cannot change in a timely manner. If you
emphasize flexibility too much and allow people work their own way,
you lose integrity. In my opinion, Lisp itself keeps a good balance between
these, and fits well into this type of project.
www.pineapple.cc
Programmer 1 Programmer 2 Programmer 3
Code 1

Perl
Code 2

Java
Code 3

Visual Basic
Domain Specific Language

Phantom Query Language
Foundation
Common LISP
Architect
Not enough?
www.pineapple.cc
Kajiya’s Rendering Equation
Radiance
www.pineapple.cc
Coherency of Dimensions (Types in Programming)
Referential Transparency
Linearity/Symmetry
www.pineapple.cc
p(t)
ClocktowerDisplay
Python/OpenGL
Sensor
C++/OpenCV
Server
Scheme
{x(t), p(t)}
t
u(p)
x(t)+y(u) t
t
Assets
JPEG
y(u)u
t
{x(t), p(t)}
u(p)
x: live video
y: animation
p: status
t: current time
u: animation time HTTP
R.T.
R.T.
R.T.
www.pineapple.cc
Monad
www.pineapple.cc
==> 2
2
www.pineapple.cc
==> (+3)2
5
{$0+3}(2)
// 5
www.pineapple.cc
==> Just 2
Just 2
www.pineapple.cc
data Maybe a = Nothing | Just a
enum Optional<T> {
case None
case Some(T)
}
www.pineapple.cc
==> (+3)(Just 2)
ERR
www.pineapple.cc
==> fmap (+3) (Just 2)
Just 5
Optional.Some(2).map{$0+3}
// .Some(5)
www.pineapple.cc
www.pineapple.cc
Optional.None.map{$0+3}
// .None
==> fmap (+3) Nothing
Nothing
www.pineapple.cc
www.pineapple.cc
{$0-1}(3)
// 2
==> (-1)3
2
www.pineapple.cc
==> let f=fmap (+3) (+2)
==> f 10
15
let f=map({$0+2}, {$0+3})
f(10)
// 15
www.pineapple.cc
www.pineapple.cc
www.pineapple.cc
half x | even x = Just (x `div` 2)
| otherwise = Nothing
func half(a: Int) -> Int? {
return a%2==0 ? a/2 : .None
}
www.pineapple.cc
www.pineapple.cc
Optional.some(3).flatMap(half)
// .None
Optional.some(4).flatMap(half)
// 2
==> Just 3 >>= half
Nothing
==> Just 4 >>= half
2
www.pineapple.cc
www.pineapple.cc
www.pineapple.cc
www.pineapple.cc
www.pineapple.cc
www.pineapple.cc
www.pineapple.cc
http://adit.io/posts/2013-04-17-
functors,_applicatives,_and_monads_in_pictures.html
www.pineapple.cc
p(t)
ClocktowerDisplay
Python/OpenGL
Sensor
C++/OpenCV
Server
Scheme
{x(t), p(t)}
t
u(p)
x(t)+y(u) t
t
Assets
JPEG
y(u)u
t
{x(t), p(t)}
u(p)
x: live video
y: animation
p: status
t: current time
u: animation time HTTP
R.T.
R.T.
R.T.
Almost R.T.
www.pineapple.cc
Y=FX
www.pineapple.cc
[Y]=F[X]
www.pineapple.cc
[Y, T]=F[X, S]
www.pineapple.cc
[Y, T]=F[X, S]; [Z, U]=G[Y, T]
[Z, U]=G•F[X, S]
www.pineapple.cc
Coherency of Dimensions (Types in Programming)
Automatic Deduction of Data Type (like C++14, Haskell)
Referential Transparency
Action in Function (like Haskell)
Linearity/Symmetry
…Future Work
www.pineapple.cc
Questions?
@kanaya

More Related Content

Viewers also liked (14)

PDF
Gruppo MutuiOnline - NOAH14 London
NOAH Advisors
 
PDF
Swine Flu Fact Sheet
Glenn E. Malone, EdD
 
PPT
Sample
aerjthv
 
PDF
Precauciones Para Cuidarse De La Influenza
osvaldo_c
 
PPTX
Ssl it-slideshares.blogspot.com
phanleson
 
DOCX
Bienvenida Cled2009
Norma Duran
 
PDF
Wokhard &amp; Swine Flu
greentechengineers
 
PDF
Animais
deniseguimaraes
 
PPT
PresentacióN Memoria Rom
lautidecarca
 
DOC
Rodolfo Vargas Resume
guestaea2f46
 
PDF
Bettermarks - NOAH15 Berlin
NOAH Advisors
 
PDF
windeln.de - NOAH15 Berlin
NOAH Advisors
 
PDF
14 - Fotolia Presentation Noah Conference 2011
NOAH Advisors
 
Gruppo MutuiOnline - NOAH14 London
NOAH Advisors
 
Swine Flu Fact Sheet
Glenn E. Malone, EdD
 
Sample
aerjthv
 
Precauciones Para Cuidarse De La Influenza
osvaldo_c
 
Ssl it-slideshares.blogspot.com
phanleson
 
Bienvenida Cled2009
Norma Duran
 
Wokhard &amp; Swine Flu
greentechengineers
 
PresentacióN Memoria Rom
lautidecarca
 
Rodolfo Vargas Resume
guestaea2f46
 
Bettermarks - NOAH15 Berlin
NOAH Advisors
 
windeln.de - NOAH15 Berlin
NOAH Advisors
 
14 - Fotolia Presentation Noah Conference 2011
NOAH Advisors
 

Similar to Function + Action = Interaction (2015) (20)

PDF
Eple thesis
Pier Giuliano Nioi
 
PDF
Tutor Py
AkramWaseem
 
KEY
PyCon Philippines 2012 Keynote
Daniel Greenfeld
 
PPT
CS 354 Interaction
Mark Kilgard
 
KEY
LISP: How I Learned To Stop Worrying And Love Parantheses
Dominic Graefen
 
KEY
Skillshare - From Noob to Tech CEO - nov 7th, 2011
Kareem Amin
 
PDF
The Developers World
Ronald Northrip
 
PPTX
Austin Python Learners Meetup - Everything you need to know about programming...
Danny Mulligan
 
PPSX
Useful Open Source Software
pramoddps
 
PPTX
Untangling spring week8
Derek Jacoby
 
PDF
The View - Lotusscript coding best practices
Bill Buchan
 
PDF
Python in Action (Part 1)
David Beazley (Dabeaz LLC)
 
PPTX
Game development session1 fundamentals of graphics engine
Koderunners
 
PDF
Citibank
thepragmaticlab
 
PDF
From programming languages to network protocols: lessons on API design
flpvsk
 
PDF
JavaFX 1.0 SDK Aquarium Paris
Alexis Moussine-Pouchkine
 
KEY
Five Languages in a Moment
Sergio Gil
 
KEY
Importance of Developers to HE in the UK
Paul Walk
 
PDF
Processing
Cate Huston
 
PDF
Clojure values
Christophe Grand
 
Eple thesis
Pier Giuliano Nioi
 
Tutor Py
AkramWaseem
 
PyCon Philippines 2012 Keynote
Daniel Greenfeld
 
CS 354 Interaction
Mark Kilgard
 
LISP: How I Learned To Stop Worrying And Love Parantheses
Dominic Graefen
 
Skillshare - From Noob to Tech CEO - nov 7th, 2011
Kareem Amin
 
The Developers World
Ronald Northrip
 
Austin Python Learners Meetup - Everything you need to know about programming...
Danny Mulligan
 
Useful Open Source Software
pramoddps
 
Untangling spring week8
Derek Jacoby
 
The View - Lotusscript coding best practices
Bill Buchan
 
Python in Action (Part 1)
David Beazley (Dabeaz LLC)
 
Game development session1 fundamentals of graphics engine
Koderunners
 
Citibank
thepragmaticlab
 
From programming languages to network protocols: lessons on API design
flpvsk
 
JavaFX 1.0 SDK Aquarium Paris
Alexis Moussine-Pouchkine
 
Five Languages in a Moment
Sergio Gil
 
Importance of Developers to HE in the UK
Paul Walk
 
Processing
Cate Huston
 
Clojure values
Christophe Grand
 
Ad

Recently uploaded (20)

PDF
Service innovation with AI: Transformation of value proposition and market se...
Selcen Ozturkcan
 
PPTX
Bacillus thuringiensis.crops & golden rice
priyadharshini87125
 
PPTX
Q1_Science 8_Week3-Day 1.pptx science lesson
AizaRazonado
 
PPTX
Envenomation AND ANIMAL BITES DETAILS.pptx
HARISH543351
 
PPTX
abdominal compartment syndrome presentation and treatment.pptx
LakshmiMounicaGrandh
 
PDF
Unit-5 ppt.pdf unit 5 organic chemistry 3
visionshukla007
 
PPTX
770043401-q1-Ppt-pe-and-Health-7-week-1-lesson-1.pptx
AizaRazonado
 
PDF
Unit-3 ppt.pdf organic chemistry unit 3 heterocyclic
visionshukla007
 
PPTX
Ghent University Global Campus: Overview
Ghent University Global Campus
 
PDF
Carbon-richDustInjectedintotheInterstellarMediumbyGalacticWCBinaries Survives...
Sérgio Sacani
 
PDF
Chemokines and Receptors Overview – Key to Immune Cell Signaling
Benjamin Lewis Lewis
 
PPTX
GB1 Q1 04 Life in a Cell (1).pptx GRADE 11
JADE ACOSTA
 
PDF
Annual report 2024 - Inria - English version.pdf
Inria
 
PDF
Asthamudi lake and its fisheries&importance .pdf
J. Bovas Joel BFSc
 
PDF
FYS 100 final presentation on Afro cubans
RowanSales
 
PPTX
ION EXCHANGE CHROMATOGRAPHY NEW PPT (JA).pptx
adhagalejotshna
 
PPTX
Akshay tunneling .pptx_20250331_165945_0000.pptx
akshaythaker18
 
PDF
Pharmakon of algorithmic alchemy: Marketing in the age of AI
Selcen Ozturkcan
 
DOCX
Critical Book Review (CBR) - "Hate Speech: Linguistic Perspectives"
Sahmiral Amri Rajagukguk
 
PDF
Pharma Part 1.pdf #pharmacology #pharmacology
hikmatyt01
 
Service innovation with AI: Transformation of value proposition and market se...
Selcen Ozturkcan
 
Bacillus thuringiensis.crops & golden rice
priyadharshini87125
 
Q1_Science 8_Week3-Day 1.pptx science lesson
AizaRazonado
 
Envenomation AND ANIMAL BITES DETAILS.pptx
HARISH543351
 
abdominal compartment syndrome presentation and treatment.pptx
LakshmiMounicaGrandh
 
Unit-5 ppt.pdf unit 5 organic chemistry 3
visionshukla007
 
770043401-q1-Ppt-pe-and-Health-7-week-1-lesson-1.pptx
AizaRazonado
 
Unit-3 ppt.pdf organic chemistry unit 3 heterocyclic
visionshukla007
 
Ghent University Global Campus: Overview
Ghent University Global Campus
 
Carbon-richDustInjectedintotheInterstellarMediumbyGalacticWCBinaries Survives...
Sérgio Sacani
 
Chemokines and Receptors Overview – Key to Immune Cell Signaling
Benjamin Lewis Lewis
 
GB1 Q1 04 Life in a Cell (1).pptx GRADE 11
JADE ACOSTA
 
Annual report 2024 - Inria - English version.pdf
Inria
 
Asthamudi lake and its fisheries&importance .pdf
J. Bovas Joel BFSc
 
FYS 100 final presentation on Afro cubans
RowanSales
 
ION EXCHANGE CHROMATOGRAPHY NEW PPT (JA).pptx
adhagalejotshna
 
Akshay tunneling .pptx_20250331_165945_0000.pptx
akshaythaker18
 
Pharmakon of algorithmic alchemy: Marketing in the age of AI
Selcen Ozturkcan
 
Critical Book Review (CBR) - "Hate Speech: Linguistic Perspectives"
Sahmiral Amri Rajagukguk
 
Pharma Part 1.pdf #pharmacology #pharmacology
hikmatyt01
 
Ad

Function + Action = Interaction (2015)