SlideShare uma empresa Scribd logo
1 de 24
Learning Lisp
  Alf Kristian Støyle
sum(1, 2);
sum(1, 2)
(sum 1, 2)
(sum 1   2)
(sum 1   2)
(sum 1 2)
Prefix notation
Function name   Parameters


     (sum 1 2)
(sum 1 2)
(sum)


(sum 1 2)


(sum 1 2 3)
(sum)
;=> 0
(sum 1 2)
;=> 3
(sum 1 2 3)
;=> 6
(+)
;=> 0
(+ 1 2)
;=> 3
(+ 1 2 3)
;=> 6
(+)
;=> 0
(+ 1 2)     1 + 2
;=> 3
(+ 1 2 3)   1 + 2 + 3
;=> 6
Lists

'(3 2 1)
;=> (3 2 1)

(+ 3 2 1)
;=> 6
Lists

'(3 2 1)
;=> (3 2 1)

(+ 3 2 1)
;=> 6


(defn iterate
  [f x] (cons x (lazy-seq (iterate f (f x)))))
Lists

'(3 2 1)
;=> (3 2 1)

(+ 3 2 1)
;=> 6


(defn iterate
  [f x] (cons x (lazy-seq (iterate f (f x)))))
Macros

(1 + 2)
Macros

(infix (1 + 2))
;=> 3
Macros

(infix (1 + 2))
;=> 3

(defmacro infix [form]
  `(~(second form) ~(first form) ~@(nnext form)))
Macros

(infix (1 + 2))
;=> 3

(defmacro infix [form]
  `(~(second form) ~(first form) ~@(nnext form)))

(macroexpand '(infix (1 + 2)))
;=> (+ 1 2)
(defn iterate
  [f x] (cons x (lazy-seq (iterate f (f x)))))
Abstract syntax tree

(defn iterate
  [f x] (cons x (lazy-seq (iterate f (f x)))))
Clojure

Mais conteúdo relacionado

Mais procurados

11 x1 t01 01 algebra & indices (2014)
11 x1 t01 01 algebra & indices (2014)11 x1 t01 01 algebra & indices (2014)
11 x1 t01 01 algebra & indices (2014)Nigel Simmons
 
X2 t02 01 factorising complex expressions (2013)
X2 t02 01 factorising complex expressions (2013)X2 t02 01 factorising complex expressions (2013)
X2 t02 01 factorising complex expressions (2013)Nigel Simmons
 
Comp decomp worked
Comp decomp workedComp decomp worked
Comp decomp workedJonna Ramsey
 
TCO in Python via bytecode manipulation.
TCO in Python via bytecode manipulation.TCO in Python via bytecode manipulation.
TCO in Python via bytecode manipulation.lnikolaeva
 
Funct format sql_statement.c
Funct format sql_statement.cFunct format sql_statement.c
Funct format sql_statement.calbertinous
 
12X1 T01 01 log laws
12X1 T01 01 log laws12X1 T01 01 log laws
12X1 T01 01 log lawsNigel Simmons
 
11 X1 T01 03 factorising (2010)
11 X1 T01 03 factorising (2010)11 X1 T01 03 factorising (2010)
11 X1 T01 03 factorising (2010)Nigel Simmons
 
The Chain Rule, Part 2
The Chain Rule, Part 2The Chain Rule, Part 2
The Chain Rule, Part 2Pablo Antuna
 
Python 培训讲义
Python 培训讲义Python 培训讲义
Python 培训讲义leejd
 
12X1 T01 03 integrating derivative on function
12X1 T01 03 integrating derivative on function12X1 T01 03 integrating derivative on function
12X1 T01 03 integrating derivative on functionNigel Simmons
 
CS201- Introduction to Programming- Lecture 17
CS201- Introduction to Programming- Lecture 17CS201- Introduction to Programming- Lecture 17
CS201- Introduction to Programming- Lecture 17Bilal Ahmed
 
Python легко и просто. Красиво решаем повседневные задачи
Python легко и просто. Красиво решаем повседневные задачиPython легко и просто. Красиво решаем повседневные задачи
Python легко и просто. Красиво решаем повседневные задачиMaxim Kulsha
 

Mais procurados (15)

11 x1 t01 01 algebra & indices (2014)
11 x1 t01 01 algebra & indices (2014)11 x1 t01 01 algebra & indices (2014)
11 x1 t01 01 algebra & indices (2014)
 
X2 t02 01 factorising complex expressions (2013)
X2 t02 01 factorising complex expressions (2013)X2 t02 01 factorising complex expressions (2013)
X2 t02 01 factorising complex expressions (2013)
 
Comp decomp worked
Comp decomp workedComp decomp worked
Comp decomp worked
 
TCO in Python via bytecode manipulation.
TCO in Python via bytecode manipulation.TCO in Python via bytecode manipulation.
TCO in Python via bytecode manipulation.
 
Funct format sql_statement.c
Funct format sql_statement.cFunct format sql_statement.c
Funct format sql_statement.c
 
12X1 T01 01 log laws
12X1 T01 01 log laws12X1 T01 01 log laws
12X1 T01 01 log laws
 
11 X1 T01 03 factorising (2010)
11 X1 T01 03 factorising (2010)11 X1 T01 03 factorising (2010)
11 X1 T01 03 factorising (2010)
 
The Chain Rule, Part 2
The Chain Rule, Part 2The Chain Rule, Part 2
The Chain Rule, Part 2
 
Python 培训讲义
Python 培训讲义Python 培训讲义
Python 培训讲义
 
12X1 T01 03 integrating derivative on function
12X1 T01 03 integrating derivative on function12X1 T01 03 integrating derivative on function
12X1 T01 03 integrating derivative on function
 
Funcion
FuncionFuncion
Funcion
 
CS201- Introduction to Programming- Lecture 17
CS201- Introduction to Programming- Lecture 17CS201- Introduction to Programming- Lecture 17
CS201- Introduction to Programming- Lecture 17
 
11 things about 11gr2
11 things about 11gr211 things about 11gr2
11 things about 11gr2
 
Haskell 101
Haskell 101Haskell 101
Haskell 101
 
Python легко и просто. Красиво решаем повседневные задачи
Python легко и просто. Красиво решаем повседневные задачиPython легко и просто. Красиво решаем повседневные задачи
Python легко и просто. Красиво решаем повседневные задачи
 

Destaque

Destaque (9)

Bibliothcairesdufuturetfuturdesbibliothques 140617024643-phpapp02 (1)
Bibliothcairesdufuturetfuturdesbibliothques 140617024643-phpapp02 (1)Bibliothcairesdufuturetfuturdesbibliothques 140617024643-phpapp02 (1)
Bibliothcairesdufuturetfuturdesbibliothques 140617024643-phpapp02 (1)
 
Clojure workshop
Clojure workshopClojure workshop
Clojure workshop
 
Into Clojure
Into ClojureInto Clojure
Into Clojure
 
Scala introduction
Scala introductionScala introduction
Scala introduction
 
Likwidacja linii tramwaju szybkiego w Zielonej Górze
Likwidacja linii tramwaju szybkiego w Zielonej GórzeLikwidacja linii tramwaju szybkiego w Zielonej Górze
Likwidacja linii tramwaju szybkiego w Zielonej Górze
 
Clojure - JVM språket som er "multi-core ready"
Clojure - JVM språket som er "multi-core ready"Clojure - JVM språket som er "multi-core ready"
Clojure - JVM språket som er "multi-core ready"
 
Paralell collections in Scala
Paralell collections in ScalaParalell collections in Scala
Paralell collections in Scala
 
The account problem in Java and Clojure
The account problem in Java and ClojureThe account problem in Java and Clojure
The account problem in Java and Clojure
 
Logi
LogiLogi
Logi
 

Semelhante a Learning Lisp Fundamentals in Clojure

comp diff
comp diffcomp diff
comp diffdianenz
 
Compfuncdiff
CompfuncdiffCompfuncdiff
Compfuncdiffdianenz
 
Haskellで学ぶ関数型言語
Haskellで学ぶ関数型言語Haskellで学ぶ関数型言語
Haskellで学ぶ関数型言語ikdysfm
 
funwithalgorithms.pptx
funwithalgorithms.pptxfunwithalgorithms.pptx
funwithalgorithms.pptxTess Ferrandez
 
4.1 inverse functions t
4.1 inverse functions t4.1 inverse functions t
4.1 inverse functions tmath260
 
Intro to Functional Programming Workshop (code4lib)
Intro to Functional Programming Workshop (code4lib)Intro to Functional Programming Workshop (code4lib)
Intro to Functional Programming Workshop (code4lib)Will Kurt
 
Ejercicios resueltos
Ejercicios resueltosEjercicios resueltos
Ejercicios resueltossialalsi
 
Root locus of_dynamic_systems
Root locus of_dynamic_systemsRoot locus of_dynamic_systems
Root locus of_dynamic_systemsAhmed Sakr
 
1.7 sign charts of factorable formulas t
1.7 sign charts of factorable formulas t1.7 sign charts of factorable formulas t
1.7 sign charts of factorable formulas tmath260
 
ゲーム理論BASIC 第19回 -有限回繰り返しゲーム-
ゲーム理論BASIC 第19回 -有限回繰り返しゲーム-ゲーム理論BASIC 第19回 -有限回繰り返しゲーム-
ゲーム理論BASIC 第19回 -有限回繰り返しゲーム-ssusere0a682
 
関数潮流(Function Tendency)
関数潮流(Function Tendency)関数潮流(Function Tendency)
関数潮流(Function Tendency)riue
 
Ah unit 1 differentiation
Ah unit 1 differentiationAh unit 1 differentiation
Ah unit 1 differentiationsjamaths
 
Zero Theorem and Rational Roots Presentation
Zero Theorem and Rational Roots PresentationZero Theorem and Rational Roots Presentation
Zero Theorem and Rational Roots PresentationDanellaFernandez
 
Modul 3 quadratic function
Modul 3 quadratic functionModul 3 quadratic function
Modul 3 quadratic functionHafidz Mukhtar
 
Week-5-Inverse-Function-NGY.pptx
Week-5-Inverse-Function-NGY.pptxWeek-5-Inverse-Function-NGY.pptx
Week-5-Inverse-Function-NGY.pptxExtremelyDarkness2
 

Semelhante a Learning Lisp Fundamentals in Clojure (20)

comp diff
comp diffcomp diff
comp diff
 
Compfuncdiff
CompfuncdiffCompfuncdiff
Compfuncdiff
 
Haskellで学ぶ関数型言語
Haskellで学ぶ関数型言語Haskellで学ぶ関数型言語
Haskellで学ぶ関数型言語
 
Ecma script 5
Ecma script 5Ecma script 5
Ecma script 5
 
funwithalgorithms.pptx
funwithalgorithms.pptxfunwithalgorithms.pptx
funwithalgorithms.pptx
 
4.1 inverse functions t
4.1 inverse functions t4.1 inverse functions t
4.1 inverse functions t
 
Relasi Fungsi.ppt
Relasi Fungsi.pptRelasi Fungsi.ppt
Relasi Fungsi.ppt
 
Relasi Fungsi.ppt
Relasi Fungsi.pptRelasi Fungsi.ppt
Relasi Fungsi.ppt
 
Intro to Functional Programming Workshop (code4lib)
Intro to Functional Programming Workshop (code4lib)Intro to Functional Programming Workshop (code4lib)
Intro to Functional Programming Workshop (code4lib)
 
Ejercicios resueltos
Ejercicios resueltosEjercicios resueltos
Ejercicios resueltos
 
Htdp01
Htdp01Htdp01
Htdp01
 
Root locus of_dynamic_systems
Root locus of_dynamic_systemsRoot locus of_dynamic_systems
Root locus of_dynamic_systems
 
1.7 sign charts of factorable formulas t
1.7 sign charts of factorable formulas t1.7 sign charts of factorable formulas t
1.7 sign charts of factorable formulas t
 
ゲーム理論BASIC 第19回 -有限回繰り返しゲーム-
ゲーム理論BASIC 第19回 -有限回繰り返しゲーム-ゲーム理論BASIC 第19回 -有限回繰り返しゲーム-
ゲーム理論BASIC 第19回 -有限回繰り返しゲーム-
 
Full Stack Clojure
Full Stack ClojureFull Stack Clojure
Full Stack Clojure
 
関数潮流(Function Tendency)
関数潮流(Function Tendency)関数潮流(Function Tendency)
関数潮流(Function Tendency)
 
Ah unit 1 differentiation
Ah unit 1 differentiationAh unit 1 differentiation
Ah unit 1 differentiation
 
Zero Theorem and Rational Roots Presentation
Zero Theorem and Rational Roots PresentationZero Theorem and Rational Roots Presentation
Zero Theorem and Rational Roots Presentation
 
Modul 3 quadratic function
Modul 3 quadratic functionModul 3 quadratic function
Modul 3 quadratic function
 
Week-5-Inverse-Function-NGY.pptx
Week-5-Inverse-Function-NGY.pptxWeek-5-Inverse-Function-NGY.pptx
Week-5-Inverse-Function-NGY.pptx
 

Último

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Último (20)

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

Learning Lisp Fundamentals in Clojure

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. Cambridge polish notation\n
  7. Cambridge polish notation\n
  8. Cambridge polish notation\n
  9. Cambridge polish notation\n
  10. Cambridge polish notation\n
  11. Cambridge polish notation\n
  12. Cambridge polish notation\n
  13. Cambridge polish notation\n
  14. Cambridge polish notation\n
  15. Cambridge polish notation\n
  16. Cambridge polish notation\n
  17. Cambridge polish notation\n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. Parens are actually literals for lists.\nData and code has the same representation.\n
  24. Parens are actually literals for lists.\nData and code has the same representation.\n
  25. Compile time metaprogrammering - ingen performance overhead\nMan bruker vanlige funksjoner til å manipulere kode, på samme måte som data\n\n\n\n
  26. Compile time metaprogrammering - ingen performance overhead\nMan bruker vanlige funksjoner til å manipulere kode, på samme måte som data\n\n\n\n
  27. Compile time metaprogrammering - ingen performance overhead\nMan bruker vanlige funksjoner til å manipulere kode, på samme måte som data\n\n\n\n
  28. \n
  29. \n
  30. \n