Commit bf6d9dae authored by Gautham Velchuru's avatar Gautham Velchuru
Browse files

fix racket sectioning

parent 07852157
\relax
\@writefile{toc}{\contentsline {section}{\numberline {1}Racket}{3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Lists}{3}}
\@writefile{toc}{\contentsline {section}{\numberline {2}Scoping}{3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Parameters}{3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Let}{3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Let*}{3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}letrec}{3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.5}Eval/Apply}{4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.6}Program/Data equivalence}{4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.7}Side effects}{4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.8}Delay}{4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.9}Macros}{4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.10}Simulating Objects}{5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.11}Functions with variable number of arguments}{5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.12}Improper list}{5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.13}Bools}{6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.14}Structs}{6}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.14.1}Printing}{6}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.14.2}Properties}{6}}
\@writefile{toc}{\contentsline {section}{\numberline {3}Prolog}{6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Rules, facts, and goals}{6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Multiple answers}{6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}clpfd}{7}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}clpr, more advanced list rule}{7}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5}clpr, positives}{7}}
\@writefile{toc}{\contentsline {section}{\numberline {4}Ruby}{8}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Pure OOP}{8}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Duck Typing}{8}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Intance-Specific methods/singleton classes}{8}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Syntactic Sugar}{8}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.5}Example using class variables, overriding, and hashes}{9}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6}Blocks, procs, lambdas}{9}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.7}Inheritance}{9}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.8}Enumerable}{10}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.9}Classes, mixins, interfaces}{11}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.10}Other semi-important things}{11}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.11}Reflection}{11}}
\@writefile{toc}{\contentsline {section}{\numberline {5}Haskell}{11}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Functions}{11}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Types}{11}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Referential transparency}{12}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Guards}{12}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.5}List comprehensions}{12}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.6}monads, I/O}{12}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.7}Call-By}{13}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.8}Static typing}{13}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.9}Let/Where}{13}}
\@writefile{toc}{\contentsline {section}{\numberline {6}Octopus}{14}}
\@writefile{toc}{\contentsline {section}{\numberline {7}Java}{14}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Generics, subtyping, etc}{14}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.1.1}Arrays}{14}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Wildcards}{14}}
\@writefile{toc}{\contentsline {section}{\numberline {8}Big Ideas}{15}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.1}Scope}{15}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.2}Static vs Dynamic Analysis}{15}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.3}Major programming language families}{16}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.4}Interaction of Languages and Style}{16}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.5}Objects and Encapsulation}{16}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.6}Purely Functional Languages vs State}{16}}
\@writefile{toc}{\contentsline {section}{\numberline {9}General Concepts}{16}}
\@writefile{toc}{\contentsline {subsection}{\numberline {9.1}Types}{16}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.1}Static vs Dynamic Typing}{16}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.2}Type Safety}{16}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.3}Type Inference}{16}}
\@writefile{toc}{\contentsline {subsection}{\numberline {9.2}Strongly typed languages}{17}}
\@writefile{toc}{\contentsline {subsection}{\numberline {9.3}Polymorphism}{17}}
\@writefile{toc}{\contentsline {subsection}{\numberline {9.4}Functional vs Imperative}{17}}
\@writefile{toc}{\contentsline {subsection}{\numberline {9.5}Higher-order functions}{17}}
\@writefile{toc}{\contentsline {subsection}{\numberline {9.6}Parameter Passing}{17}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.6.1}Call-By-Value}{17}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.6.2}Call-by-reference}{17}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.6.3}Call-by-name}{17}}
\@writefile{toc}{\contentsline {subsection}{\numberline {9.7}Lazy evaluation/thunks}{18}}
\@writefile{toc}{\contentsline {subsection}{\numberline {9.8}Overloading}{18}}
\@writefile{toc}{\contentsline {subsection}{\numberline {9.9}Coercion}{18}}
\@writefile{toc}{\contentsline {subsection}{\numberline {9.10}Closures}{18}}
\@writefile{toc}{\contentsline {subsection}{\numberline {9.11}Equality vs Identity}{18}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Scoping}{3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Parameters}{3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}Let}{3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.5}Let*}{3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.6}letrec}{3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.7}Eval/Apply}{4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.8}Program/Data equivalence}{4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.9}Side effects}{4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.10}Delay}{4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.11}Macros}{4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.12}Simulating Objects}{5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.13}Functions with variable number of arguments}{5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.14}Improper list}{5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.15}Bools}{6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.16}Structs}{6}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.16.1}Printing}{6}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.16.2}Properties}{6}}
\@writefile{toc}{\contentsline {section}{\numberline {2}Prolog}{6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Rules, facts, and goals}{6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Multiple answers}{6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}clpfd}{7}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}clpr, more advanced list rule}{7}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.5}clpr, positives}{7}}
\@writefile{toc}{\contentsline {section}{\numberline {3}Ruby}{8}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Pure OOP}{8}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Duck Typing}{8}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Intance-Specific methods/singleton classes}{8}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Syntactic Sugar}{8}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5}Example using class variables, overriding, and hashes}{9}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.6}Blocks, procs, lambdas}{9}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.7}Inheritance}{9}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.8}Enumerable}{10}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.9}Classes, mixins, interfaces}{11}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.10}Other semi-important things}{11}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.11}Reflection}{11}}
\@writefile{toc}{\contentsline {section}{\numberline {4}Haskell}{11}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Functions}{11}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Types}{11}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Referential transparency}{12}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Guards}{12}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.5}List comprehensions}{12}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6}monads, I/O}{12}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.7}Call-By}{13}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.8}Static typing}{13}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.9}Let/Where}{13}}
\@writefile{toc}{\contentsline {section}{\numberline {5}Octopus}{14}}
\@writefile{toc}{\contentsline {section}{\numberline {6}Java}{14}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Generics, subtyping, etc}{14}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.1.1}Arrays}{14}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Wildcards}{14}}
\@writefile{toc}{\contentsline {section}{\numberline {7}Big Ideas}{15}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Scope}{15}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Static vs Dynamic Analysis}{15}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.3}Major programming language families}{16}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.4}Interaction of Languages and Style}{16}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.5}Objects and Encapsulation}{16}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.6}Purely Functional Languages vs State}{16}}
\@writefile{toc}{\contentsline {section}{\numberline {8}General Concepts}{16}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.1}Types}{16}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.1.1}Static vs Dynamic Typing}{16}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.1.2}Type Safety}{16}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.1.3}Type Inference}{16}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.2}Strongly typed languages}{17}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.3}Polymorphism}{17}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.4}Functional vs Imperative}{17}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.5}Higher-order functions}{17}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.6}Parameter Passing}{17}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.6.1}Call-By-Value}{17}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.6.2}Call-by-reference}{17}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.6.3}Call-by-name}{17}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.7}Lazy evaluation/thunks}{18}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.8}Overloading}{18}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.9}Coercion}{18}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.10}Closures}{18}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.11}Equality vs Identity}{18}}
\gdef\minted@oldcachelist{,
default-pyg-prefix.pygstyle,
default.pygstyle,
......@@ -129,8 +129,8 @@
3B10F88D8DCED974CDD9946B53C2D9666CD81CFDCB5F0793F497D493F610EBFB.pygtex,
874C30DABB4D3006287318F54AA39D80465A516120F3196FA8E2CA26C46A5C64.pygtex,
75C03D82507A67BD7A35CA65A1C45809465A516120F3196FA8E2CA26C46A5C64.pygtex}
\@writefile{toc}{\contentsline {subsection}{\numberline {9.12}Compile time vs runtime}{19}}
\@writefile{toc}{\contentsline {subsection}{\numberline {9.13}Recursion}{19}}
\@writefile{toc}{\contentsline {subsection}{\numberline {9.14}Aliasing}{19}}
\@writefile{toc}{\contentsline {subsection}{\numberline {9.15}Pointer stuff}{19}}
\@writefile{toc}{\contentsline {subsection}{\numberline {9.16}Type variance}{19}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.12}Compile time vs runtime}{19}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.13}Recursion}{19}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.14}Aliasing}{19}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.15}Pointer stuff}{19}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.16}Type variance}{19}}
# Fdb version 3
["pdflatex"] 1528063324 "all_study_guide.tex" "all_study_guide.pdf" "all_study_guide" 1528063325
["pdflatex"] 1528063487 "all_study_guide.tex" "all_study_guide.pdf" "all_study_guide" 1528063488
"/dev/null" 1528048107 0 d41d8cd98f00b204e9800998ecf8427e ""
"/usr/share/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.enc" 1520157211 2900 1537cc8184ad1792082cd229ecc269f4 ""
"/usr/share/texmf-dist/fonts/map/fontname/texfonts.map" 1520157216 3332 103109f5612ad95229751940c61aada0 ""
......@@ -117,10 +117,10 @@
"_minted-all_study_guide/default-pyg-prefix.pygstyle" 1527965156 7889 3ce1fbc763e3e2c748310f4fe31722b6 ""
"_minted-all_study_guide/default.pygstyle" 1527965156 9275 f200be7fc0b7de2461cca28cb35b1427 ""
"all_study_guide.aex" 0 -1 0 ""
"all_study_guide.aux" 1528063325 10608 a615f64dcc7df48eb92e59c1adde391d ""
"all_study_guide.aux" 1528063488 10615 16a176c9838b7a1f6ba11db8a4287e3d ""
"all_study_guide.pyg" 0 -1 0 ""
"all_study_guide.tex" 1528063322 27617 bdfdc8c140a81d4cddf07ca9ab2e27a2 ""
"all_study_guide.toc" 1528063325 5295 f42610b7cc621eb60d72340481ae7873 ""
"all_study_guide.tex" 1528063485 27612 f00ee79f093775ed2c0db51c933946b0 ""
"all_study_guide.toc" 1528063488 5302 6e3b2c4588b3c733790578f2d021b9ef ""
"all_study_guide.w18" 0 -1 0 ""
(generated)
"all_study_guide.pyg"
......
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Arch Linux) (preloaded format=pdflatex 2018.3.16) 3 JUN 2018 15:02
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Arch Linux) (preloaded format=pdflatex 2018.3.16) 3 JUN 2018 15:04
entering extended mode
\write18 enabled.
file:line:error style messages enabled.
......@@ -817,9 +817,14 @@ File: ts1cmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions
\openout3 = `all_study_guide.pyg'.
(./_minted-all_study_guide/57EC26033360CCD3724E8AF51E1F98CCF2CA81E7B26B3986E5291D03C014E77B.pygtex)
Underfull \hbox (badness 10000) in paragraph at lines 384--386
[]
[11]
\openout3 = `all_study_guide.pyg'.
(./_minted-all_study_guide/77C0832C8BCB2A6A98117AFCECBE18C9F2CA81E7B26B3986E5291D03C014E77B.pygtex [11])
(./_minted-all_study_guide/77C0832C8BCB2A6A98117AFCECBE18C9F2CA81E7B26B3986E5291D03C014E77B.pygtex)
\openout3 = `all_study_guide.pyg'.
(./_minted-all_study_guide/344390A64555B36245F4806596BE054FF2CA81E7B26B3986E5291D03C014E77B.pygtex)
......@@ -831,8 +836,7 @@ File: ts1cmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions
(./_minted-all_study_guide/6503A0D437DF0FAAFAFD7D5C90521B4CF2CA81E7B26B3986E5291D03C014E77B.pygtex)
\openout3 = `all_study_guide.pyg'.
(./_minted-all_study_guide/F5C6D8F059AB11589408A75B29FFB18AF2CA81E7B26B3986E5291D03C014E77B.pygtex)
(./_minted-all_study_guide/F5C6D8F059AB11589408A75B29FFB18AF2CA81E7B26B3986E5291D03C014E77B.pygtex)
\openout3 = `all_study_guide.pyg'.
(./_minted-all_study_guide/52139519543E28217844CBDFD7056C76F2CA81E7B26B3986E5291D03C014E77B.pygtex [12])
......@@ -863,9 +867,13 @@ File: ts1cmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions
\openout3 = `all_study_guide.pyg'.
(./_minted-all_study_guide/EE2D7538D96D4B5E2BC4B913B41FC366465A516120F3196FA8E2CA26C46A5C64.pygtex) [16]
Overfull \hbox (5.08403pt too wide) in paragraph at lines 586--589
\OT1/cmr/m/n/10 Call-by-value means that ev-ery-thing is copied upon en-ter-ing a func-tion.Languages
[]
\openout3 = `all_study_guide.pyg'.
(./_minted-all_study_guide/3B10F88D8DCED974CDD9946B53C2D9666CD81CFDCB5F0793F497D493F610EBFB.pygtex [17])
(./_minted-all_study_guide/3B10F88D8DCED974CDD9946B53C2D9666CD81CFDCB5F0793F497D493F610EBFB.pygtex [17])
\openout3 = `all_study_guide.pyg'.
(./_minted-all_study_guide/874C30DABB4D3006287318F54AA39D80465A516120F3196FA8E2CA26C46A5C64.pygtex) [18]
......@@ -884,7 +892,7 @@ Here is how much of TeX's memory you used:
1141 hyphenation exceptions out of 8191
37i,6n,35p,857b,342s stack positions out of 5000i,500n,10000p,200000b,80000s
{/usr/share/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.enc}</usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmitt10.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt10.pfb></usr/share/texmf-dist/fonts/type1/public/cm-super/sfrm1000.pfb>
Output written on all_study_guide.pdf (19 pages, 153994 bytes).
Output written on all_study_guide.pdf (19 pages, 153784 bytes).
PDF statistics:
103 PDF objects out of 1000 (max. 8388607)
72 compressed objects within 1 object stream
......
No preview for this file type
......@@ -14,7 +14,7 @@ Lists are made with either the list constructor or with cons:
\end{minted}
We can navigate these with car for first element, cdr for tail, cadr for head of tail, etc.
\section{Scoping}
\subsection{Scoping}
Everything is lexically scoped in Racket within the environment. However, the environment itself can mean different things.
\subsection{Parameters}
%TODO: something about dynamic binding
......@@ -381,8 +381,8 @@ All three are ways of capturing the environment on definition. However, the lexi
\begin{minted}{haskell}
elem x :: Eq a => a -> [a] -> Bool -- a is part of the Eq type class
\end{minted}
A type class is essentially an interface -- if a type is part of a type class, it implements
the required behavior.
A type class is essentially an interface - if a type is part of a type class, it implements
the required behavior. \\
You can also define your own types, including recursive types:
......@@ -583,13 +583,12 @@ We don't need to specify the types of the map twice, since it is obvious from th
Higher-order functions are functions which either take in a function as an argument or return one, such as map and filter.
\subsection{Parameter Passing}
\subsubsection{Call-By-Value}
Call-by-value means that everything is copied upon entering a function.
Languages such as Ruby, Java, etc do "pass-by-pointer", ie they are still pass-by-value, but the
Call-by-value means that everything is copied upon entering a function.Languages such as Ruby, Java, etc do "pass-by-pointer", ie they are still pass-by-value, but the
value is a pointer. What this means is that if you pass in an array, you can edit it, but
changing the reference will not do anything.
\subsubsection{Call-by-reference}
Call-by-reference means we pass in a \textit{reference} to the object -- so, it can be reassigned, edited, etc.
Call-by-reference means we pass in a \textit{reference} to the object - so, it can be reassigned, edited, etc.
\subsubsection{Call-by-name}
Call-by-name is somewhat of an older concept. It means that we evaluate the object every time we reference it within the method. It can
be emulated with thunks in Racket:
......
\contentsline {section}{\numberline {1}Racket}{3}
\contentsline {subsection}{\numberline {1.1}Lists}{3}
\contentsline {section}{\numberline {2}Scoping}{3}
\contentsline {subsection}{\numberline {2.1}Parameters}{3}
\contentsline {subsection}{\numberline {2.2}Let}{3}
\contentsline {subsection}{\numberline {2.3}Let*}{3}
\contentsline {subsection}{\numberline {2.4}letrec}{3}
\contentsline {subsection}{\numberline {2.5}Eval/Apply}{4}
\contentsline {subsection}{\numberline {2.6}Program/Data equivalence}{4}
\contentsline {subsection}{\numberline {2.7}Side effects}{4}
\contentsline {subsection}{\numberline {2.8}Delay}{4}
\contentsline {subsection}{\numberline {2.9}Macros}{4}
\contentsline {subsection}{\numberline {2.10}Simulating Objects}{5}
\contentsline {subsection}{\numberline {2.11}Functions with variable number of arguments}{5}
\contentsline {subsection}{\numberline {2.12}Improper list}{5}
\contentsline {subsection}{\numberline {2.13}Bools}{6}
\contentsline {subsection}{\numberline {2.14}Structs}{6}
\contentsline {subsubsection}{\numberline {2.14.1}Printing}{6}
\contentsline {subsubsection}{\numberline {2.14.2}Properties}{6}
\contentsline {section}{\numberline {3}Prolog}{6}
\contentsline {subsection}{\numberline {3.1}Rules, facts, and goals}{6}
\contentsline {subsection}{\numberline {3.2}Multiple answers}{6}
\contentsline {subsection}{\numberline {3.3}clpfd}{7}
\contentsline {subsection}{\numberline {3.4}clpr, more advanced list rule}{7}
\contentsline {subsection}{\numberline {3.5}clpr, positives}{7}
\contentsline {section}{\numberline {4}Ruby}{8}
\contentsline {subsection}{\numberline {4.1}Pure OOP}{8}
\contentsline {subsection}{\numberline {4.2}Duck Typing}{8}
\contentsline {subsection}{\numberline {4.3}Intance-Specific methods/singleton classes}{8}
\contentsline {subsection}{\numberline {4.4}Syntactic Sugar}{8}
\contentsline {subsection}{\numberline {4.5}Example using class variables, overriding, and hashes}{9}
\contentsline {subsection}{\numberline {4.6}Blocks, procs, lambdas}{9}
\contentsline {subsection}{\numberline {4.7}Inheritance}{9}
\contentsline {subsection}{\numberline {4.8}Enumerable}{10}
\contentsline {subsection}{\numberline {4.9}Classes, mixins, interfaces}{11}
\contentsline {subsection}{\numberline {4.10}Other semi-important things}{11}
\contentsline {subsection}{\numberline {4.11}Reflection}{11}
\contentsline {section}{\numberline {5}Haskell}{11}
\contentsline {subsection}{\numberline {5.1}Functions}{11}
\contentsline {subsection}{\numberline {5.2}Types}{11}
\contentsline {subsection}{\numberline {5.3}Referential transparency}{12}
\contentsline {subsection}{\numberline {5.4}Guards}{12}
\contentsline {subsection}{\numberline {5.5}List comprehensions}{12}
\contentsline {subsection}{\numberline {5.6}monads, I/O}{12}
\contentsline {subsection}{\numberline {5.7}Call-By}{13}
\contentsline {subsection}{\numberline {5.8}Static typing}{13}
\contentsline {subsection}{\numberline {5.9}Let/Where}{13}
\contentsline {section}{\numberline {6}Octopus}{14}
\contentsline {section}{\numberline {7}Java}{14}
\contentsline {subsection}{\numberline {7.1}Generics, subtyping, etc}{14}
\contentsline {subsubsection}{\numberline {7.1.1}Arrays}{14}
\contentsline {subsection}{\numberline {7.2}Wildcards}{14}
\contentsline {section}{\numberline {8}Big Ideas}{15}
\contentsline {subsection}{\numberline {8.1}Scope}{15}
\contentsline {subsection}{\numberline {8.2}Static vs Dynamic Analysis}{15}
\contentsline {subsection}{\numberline {8.3}Major programming language families}{16}
\contentsline {subsection}{\numberline {8.4}Interaction of Languages and Style}{16}
\contentsline {subsection}{\numberline {8.5}Objects and Encapsulation}{16}
\contentsline {subsection}{\numberline {8.6}Purely Functional Languages vs State}{16}
\contentsline {section}{\numberline {9}General Concepts}{16}
\contentsline {subsection}{\numberline {9.1}Types}{16}
\contentsline {subsubsection}{\numberline {9.1.1}Static vs Dynamic Typing}{16}
\contentsline {subsubsection}{\numberline {9.1.2}Type Safety}{16}
\contentsline {subsubsection}{\numberline {9.1.3}Type Inference}{16}
\contentsline {subsection}{\numberline {9.2}Strongly typed languages}{17}
\contentsline {subsection}{\numberline {9.3}Polymorphism}{17}
\contentsline {subsection}{\numberline {9.4}Functional vs Imperative}{17}
\contentsline {subsection}{\numberline {9.5}Higher-order functions}{17}
\contentsline {subsection}{\numberline {9.6}Parameter Passing}{17}
\contentsline {subsubsection}{\numberline {9.6.1}Call-By-Value}{17}
\contentsline {subsubsection}{\numberline {9.6.2}Call-by-reference}{17}
\contentsline {subsubsection}{\numberline {9.6.3}Call-by-name}{17}
\contentsline {subsection}{\numberline {9.7}Lazy evaluation/thunks}{18}
\contentsline {subsection}{\numberline {9.8}Overloading}{18}
\contentsline {subsection}{\numberline {9.9}Coercion}{18}
\contentsline {subsection}{\numberline {9.10}Closures}{18}
\contentsline {subsection}{\numberline {9.11}Equality vs Identity}{18}
\contentsline {subsection}{\numberline {9.12}Compile time vs runtime}{19}
\contentsline {subsection}{\numberline {9.13}Recursion}{19}
\contentsline {subsection}{\numberline {9.14}Aliasing}{19}
\contentsline {subsection}{\numberline {9.15}Pointer stuff}{19}
\contentsline {subsection}{\numberline {9.16}Type variance}{19}
\contentsline {subsection}{\numberline {1.2}Scoping}{3}
\contentsline {subsection}{\numberline {1.3}Parameters}{3}
\contentsline {subsection}{\numberline {1.4}Let}{3}
\contentsline {subsection}{\numberline {1.5}Let*}{3}
\contentsline {subsection}{\numberline {1.6}letrec}{3}
\contentsline {subsection}{\numberline {1.7}Eval/Apply}{4}
\contentsline {subsection}{\numberline {1.8}Program/Data equivalence}{4}
\contentsline {subsection}{\numberline {1.9}Side effects}{4}
\contentsline {subsection}{\numberline {1.10}Delay}{4}
\contentsline {subsection}{\numberline {1.11}Macros}{4}
\contentsline {subsection}{\numberline {1.12}Simulating Objects}{5}
\contentsline {subsection}{\numberline {1.13}Functions with variable number of arguments}{5}
\contentsline {subsection}{\numberline {1.14}Improper list}{5}
\contentsline {subsection}{\numberline {1.15}Bools}{6}
\contentsline {subsection}{\numberline {1.16}Structs}{6}
\contentsline {subsubsection}{\numberline {1.16.1}Printing}{6}
\contentsline {subsubsection}{\numberline {1.16.2}Properties}{6}
\contentsline {section}{\numberline {2}Prolog}{6}
\contentsline {subsection}{\numberline {2.1}Rules, facts, and goals}{6}
\contentsline {subsection}{\numberline {2.2}Multiple answers}{6}
\contentsline {subsection}{\numberline {2.3}clpfd}{7}
\contentsline {subsection}{\numberline {2.4}clpr, more advanced list rule}{7}
\contentsline {subsection}{\numberline {2.5}clpr, positives}{7}
\contentsline {section}{\numberline {3}Ruby}{8}
\contentsline {subsection}{\numberline {3.1}Pure OOP}{8}
\contentsline {subsection}{\numberline {3.2}Duck Typing}{8}
\contentsline {subsection}{\numberline {3.3}Intance-Specific methods/singleton classes}{8}
\contentsline {subsection}{\numberline {3.4}Syntactic Sugar}{8}
\contentsline {subsection}{\numberline {3.5}Example using class variables, overriding, and hashes}{9}
\contentsline {subsection}{\numberline {3.6}Blocks, procs, lambdas}{9}
\contentsline {subsection}{\numberline {3.7}Inheritance}{9}
\contentsline {subsection}{\numberline {3.8}Enumerable}{10}
\contentsline {subsection}{\numberline {3.9}Classes, mixins, interfaces}{11}
\contentsline {subsection}{\numberline {3.10}Other semi-important things}{11}
\contentsline {subsection}{\numberline {3.11}Reflection}{11}
\contentsline {section}{\numberline {4}Haskell}{11}
\contentsline {subsection}{\numberline {4.1}Functions}{11}
\contentsline {subsection}{\numberline {4.2}Types}{11}
\contentsline {subsection}{\numberline {4.3}Referential transparency}{12}
\contentsline {subsection}{\numberline {4.4}Guards}{12}
\contentsline {subsection}{\numberline {4.5}List comprehensions}{12}
\contentsline {subsection}{\numberline {4.6}monads, I/O}{12}
\contentsline {subsection}{\numberline {4.7}Call-By}{13}
\contentsline {subsection}{\numberline {4.8}Static typing}{13}
\contentsline {subsection}{\numberline {4.9}Let/Where}{13}
\contentsline {section}{\numberline {5}Octopus}{14}
\contentsline {section}{\numberline {6}Java}{14}
\contentsline {subsection}{\numberline {6.1}Generics, subtyping, etc}{14}
\contentsline {subsubsection}{\numberline {6.1.1}Arrays}{14}
\contentsline {subsection}{\numberline {6.2}Wildcards}{14}
\contentsline {section}{\numberline {7}Big Ideas}{15}
\contentsline {subsection}{\numberline {7.1}Scope}{15}
\contentsline {subsection}{\numberline {7.2}Static vs Dynamic Analysis}{15}
\contentsline {subsection}{\numberline {7.3}Major programming language families}{16}
\contentsline {subsection}{\numberline {7.4}Interaction of Languages and Style}{16}
\contentsline {subsection}{\numberline {7.5}Objects and Encapsulation}{16}
\contentsline {subsection}{\numberline {7.6}Purely Functional Languages vs State}{16}
\contentsline {section}{\numberline {8}General Concepts}{16}
\contentsline {subsection}{\numberline {8.1}Types}{16}
\contentsline {subsubsection}{\numberline {8.1.1}Static vs Dynamic Typing}{16}
\contentsline {subsubsection}{\numberline {8.1.2}Type Safety}{16}
\contentsline {subsubsection}{\numberline {8.1.3}Type Inference}{16}
\contentsline {subsection}{\numberline {8.2}Strongly typed languages}{17}
\contentsline {subsection}{\numberline {8.3}Polymorphism}{17}
\contentsline {subsection}{\numberline {8.4}Functional vs Imperative}{17}
\contentsline {subsection}{\numberline {8.5}Higher-order functions}{17}
\contentsline {subsection}{\numberline {8.6}Parameter Passing}{17}
\contentsline {subsubsection}{\numberline {8.6.1}Call-By-Value}{17}
\contentsline {subsubsection}{\numberline {8.6.2}Call-by-reference}{17}
\contentsline {subsubsection}{\numberline {8.6.3}Call-by-name}{17}
\contentsline {subsection}{\numberline {8.7}Lazy evaluation/thunks}{18}
\contentsline {subsection}{\numberline {8.8}Overloading}{18}
\contentsline {subsection}{\numberline {8.9}Coercion}{18}
\contentsline {subsection}{\numberline {8.10}Closures}{18}
\contentsline {subsection}{\numberline {8.11}Equality vs Identity}{18}
\contentsline {subsection}{\numberline {8.12}Compile time vs runtime}{19}
\contentsline {subsection}{\numberline {8.13}Recursion}{19}
\contentsline {subsection}{\numberline {8.14}Aliasing}{19}
\contentsline {subsection}{\numberline {8.15}Pointer stuff}{19}
\contentsline {subsection}{\numberline {8.16}Type variance}{19}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment