language test 2 Flashcards
let, let*, letrec
let is normal, let* means pay attention to bindings even within let expression and letrec means can call self in defenition
tail recursion
compiler fakes iteration. Nothing needs to be done after return.
Static Length String
length of the string is fixed
Limited Dynamic Length String
size can shrink/grow but fixed max
Dynamic Length String
String go brrrr
types of array bindings
static (C++ static), fixed stack dynamic (declared c++ arrays), fixed heap dynamic (C++ new array), HEAP-DYNAMIC (everything is dynamic including size).
associative array
maps keys to values
difference between tuple and record
record is a named tuple
union
A type whose variables are allowed to store different type values at different times during execution
unification vs instantiation
unification means two rules match and can be merged, instantiation is when X gets replaced with the fact implied