• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/9

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

9 Cards in this Set

  • Front
  • Back

Immutable

It makes sharing and aliasing irrelevant

Function Binding

Syntax: fun x0 (x1 : t1) = e;



Type Checking: we type check the body e in a static env that maps x1 to t1



Evaluation: a function is a value

Recursive:

A function definition that can use itself

Type Inference

Automatic deduction of a data type in a function

Function Calls

Syntax: e0(e1...,en)



Type Checking: e0 has a type that looks like t1* tn -> t



Evaluation Rules: en to vn then v0 must be a function and maps the arguments to the current env


ML tuples

A pair that allows multiple parts, fixed length could use different data types



EX: 3 - tuples has type int * int * int (2, 8, 7)


ML Lists

Must contain the same data type and has a flexible length []


Scope of a Binding

Where it can be used

ML Let Expressions

Syntax: let b1 b2... bn in e end



Semantics: Eval each binding in turn creating a larger env for the subsequent bindings. We can use earlier binding for later ones



Type Checking: The type of e is the type for the entire let expression.