functional programming - illinois institute of technology · 2021. 1. 25. · functional...
TRANSCRIPT
![Page 1: Functional programming - Illinois Institute of Technology · 2021. 1. 25. · Functional programming CS 340: programming Paradigms 1Patterns. Questions:-whatisfunctionalprogramming?](https://reader035.vdocuments.us/reader035/viewer/2022071406/60fbafb08b10df29b82a4a4b/html5/thumbnails/1.jpg)
Functional programmingCS 340 : programming Paradigms 1 Patterns
![Page 2: Functional programming - Illinois Institute of Technology · 2021. 1. 25. · Functional programming CS 340: programming Paradigms 1Patterns. Questions:-whatisfunctionalprogramming?](https://reader035.vdocuments.us/reader035/viewer/2022071406/60fbafb08b10df29b82a4a4b/html5/thumbnails/2.jpg)
Questions :- what is functional programming? (what is it not ?)- some f.p. historybackground , please ?- how is f.p . different from imperative programming ?- what are some advantages of f p. ?(per Hughes , what
"
gwe" features does it provide ?)
- what are some disadvantage of fp. ?
![Page 3: Functional programming - Illinois Institute of Technology · 2021. 1. 25. · Functional programming CS 340: programming Paradigms 1Patterns. Questions:-whatisfunctionalprogramming?](https://reader035.vdocuments.us/reader035/viewer/2022071406/60fbafb08b10df29b82a4a4b/html5/thumbnails/3.jpg)
Functional programming has rootsin mathematical logic
and computational theory. ←what is computable ?- based on some
w 1936 , three formal approaches to computability : universalmodel of1. Turing machines computationz.
Kleene's recursive function theoryEa§.ae?jee959a:fFbmidiamoYwaao7ns78ruees for structuringoperations ,③proof theory-
"can I compute this !
- all are equivalent ! (what is computablewi one model is
computable in others)
![Page 4: Functional programming - Illinois Institute of Technology · 2021. 1. 25. · Functional programming CS 340: programming Paradigms 1Patterns. Questions:-whatisfunctionalprogramming?](https://reader035.vdocuments.us/reader035/viewer/2022071406/60fbafb08b10df29b82a4a4b/html5/thumbnails/4.jpg)
A calculus :- very simple
model for functional programming- basic syntax→ universal machine code for ftp.langoagee
grammar : tnIrwin
expr : = dvar . expert (agar ego )y
amiability, fu#dy
futon tag
![Page 5: Functional programming - Illinois Institute of Technology · 2021. 1. 25. · Functional programming CS 340: programming Paradigms 1Patterns. Questions:-whatisfunctionalprogramming?](https://reader035.vdocuments.us/reader035/viewer/2022071406/60fbafb08b10df29b82a4a4b/html5/thumbnails/5.jpg)
Evaluation :
- when evaluatingfu application ,the argument issubstituted for all instances of the bound variablein the called function 's body
e.g . ( ix. × lo) ⇒ HE ⇒ 10
(DX .x't 2×+5 10) ⇒ 102+210+5-
allowingarith . ups.
![Page 6: Functional programming - Illinois Institute of Technology · 2021. 1. 25. · Functional programming CS 340: programming Paradigms 1Patterns. Questions:-whatisfunctionalprogramming?](https://reader035.vdocuments.us/reader035/viewer/2022071406/60fbafb08b10df29b82a4a4b/html5/thumbnails/6.jpg)
{field 5g}⇒5 Cid id ) ⇒ id
e.g. , id = d x. x ⇒y
ft = ix. dy . × { Ast 5) ⇒ dy.
5
(Ast s) 6) ⇒ 5
((app id ) 5) ⇒ sapp = df.dk tf x) {(( app ((app fest) s)) b)⇒5rec-
- tf . Cf f ) {Creeid) ⇒ id
Cree rec) ⇒ ?
![Page 7: Functional programming - Illinois Institute of Technology · 2021. 1. 25. · Functional programming CS 340: programming Paradigms 1Patterns. Questions:-whatisfunctionalprogramming?](https://reader035.vdocuments.us/reader035/viewer/2022071406/60fbafb08b10df29b82a4a4b/html5/thumbnails/7.jpg)
wuperative thefts. Functional
![Page 8: Functional programming - Illinois Institute of Technology · 2021. 1. 25. · Functional programming CS 340: programming Paradigms 1Patterns. Questions:-whatisfunctionalprogramming?](https://reader035.vdocuments.us/reader035/viewer/2022071406/60fbafb08b10df29b82a4a4b/html5/thumbnails/8.jpg)
Imperative programs areFunctional programs are
made upofsyueucesof tascdonnestinglaemposiugstatements function calls
a = 10
b -- so flwiglxiy) ,hLz))c-- atb
![Page 9: Functional programming - Illinois Institute of Technology · 2021. 1. 25. · Functional programming CS 340: programming Paradigms 1Patterns. Questions:-whatisfunctionalprogramming?](https://reader035.vdocuments.us/reader035/viewer/2022071406/60fbafb08b10df29b82a4a4b/html5/thumbnails/9.jpg)
Imperative programs allow Functional programs dovalves associated up variables not allow variables tote
to change overtime ("state rebound
. (no assignmentmutations ")
statements)← equals means goals !
X = 5A. = 10-
g- 6 a=#temp -- xx -- y swapxy
-
- swap yxg- trap
![Page 10: Functional programming - Illinois Institute of Technology · 2021. 1. 25. · Functional programming CS 340: programming Paradigms 1Patterns. Questions:-whatisfunctionalprogramming?](https://reader035.vdocuments.us/reader035/viewer/2022071406/60fbafb08b10df29b82a4a4b/html5/thumbnails/10.jpg)
luynratine languages have Functional languages onlybuilt-in " control flow" have expressions and functionconstructs that alterthe calls
.
"contraflow" is
default orderingofstatements meaningless!
A = 10
IF:b finis!÷÷÷:mabitaebtahg.ba
max =b sum O = 0
else sum X = xtsvunlx- l)Max -_ a
![Page 11: Functional programming - Illinois Institute of Technology · 2021. 1. 25. · Functional programming CS 340: programming Paradigms 1Patterns. Questions:-whatisfunctionalprogramming?](https://reader035.vdocuments.us/reader035/viewer/2022071406/60fbafb08b10df29b82a4a4b/html5/thumbnails/11.jpg)
Imperative programs may Functional programs contain
define procedures up noside- effects . I.e. ,fus"
side-effects ."
ontycompnletheirreadtsdefsuencx, y)
:nothing else !
global zsum xy= xty
zt=xtY [upure
" function -return xty
F%. %FF.intrename:a;a¥¥
states !
![Page 12: Functional programming - Illinois Institute of Technology · 2021. 1. 25. · Functional programming CS 340: programming Paradigms 1Patterns. Questions:-whatisfunctionalprogramming?](https://reader035.vdocuments.us/reader035/viewer/2022071406/60fbafb08b10df29b82a4a4b/html5/thumbnails/12.jpg)
I
Imperative programs require Functional programs permit" strict "evaluation (aka
"
easy"
evaluation,duet
"
eager"/"greedy" evaluation) referential transparency .
noticed to
← evaluate ,
foolswnf.ae) , sum Gis)) footballers ,4) if jmmediddg-3 bathe ,45) )muetbeexeeutedm
order ! fooxy = 10
footprint'('hello ") , me
point ("
bye"))
contain "thanks"
![Page 13: Functional programming - Illinois Institute of Technology · 2021. 1. 25. · Functional programming CS 340: programming Paradigms 1Patterns. Questions:-whatisfunctionalprogramming?](https://reader035.vdocuments.us/reader035/viewer/2022071406/60fbafb08b10df29b82a4a4b/html5/thumbnails/13.jpg)
'
first-class fu - fu as a valve
Imperative languages HOF -- fu Functional languagesthat takes universallysupport first-wave varyingsupport for returnsclass and higher-orderfirst-class and higher- fhs
order functions . functions -
@f.fdg.g)defapplf , x) :f- (x)
PYTappllamkdag.ytl.io)
intappciuttxtfkuitj.int#intuicCuitx)Ereturn f-Cx) ;
return xtl ;
}}
appcuic , b)⇒ 11
![Page 14: Functional programming - Illinois Institute of Technology · 2021. 1. 25. · Functional programming CS 340: programming Paradigms 1Patterns. Questions:-whatisfunctionalprogramming?](https://reader035.vdocuments.us/reader035/viewer/2022071406/60fbafb08b10df29b82a4a4b/html5/thumbnails/14.jpg)
I
luynratine programs Functional languagessupport direct uipntfoutput proiniatdireetyouifuuekins ,
aetheywdnedoasideeffede !def fool!) :
g- input >
returnxtyJ.
IChowdomedouepit ?)
fois meta purefunction !