Scott encoding

E143340

Scott encoding is a method in lambda calculus for representing algebraic data types and their pattern matching behavior using higher-order functions.

All labels observed (1)

Label Occurrences
Scott encoding canonical 1

How this entity was disambiguated

Statements (46)

Predicate Object
instanceOf encoding scheme
representation in lambda calculus
advantage constant-time access to constructor and fields in many formulations
more natural pattern matching than Church encoding for some data types
appliedTo booleans
lists
natural numbers
pairs
trees
basedOn function application
lambda abstraction
category lambda calculus encodings
representations of algebraic data types
contrastsWith Church encoding
Parigot encoding
disadvantage can be more complex in typed systems
less canonical than Church encoding in some settings
enables representation of coinductive types
representation of inductive types
field functional programming
lambda calculus
formalizes case distinction as higher-order function
models product types
recursive data types
sum types
namedAfter Dana Scott
property constructor arguments are passed to branch functions
data values are functions expecting case branches
pattern matching is represented as function application
relatedTo denotational semantics
domain theory
system F
typed lambda calculus
represents algebraic data types
data constructors
pattern matching behavior
supports case analysis
direct pattern matching
usedFor constructive proofs in type theory
defining interpreters in pure lambda calculus
encoding pattern matching in calculi without native data types
reasoning about program equivalence
usedIn proof theory
semantics of programming languages
theoretical computer science
uses higher-order functions

How these facts were elicited

Referenced by (1)

Full triples — surface form annotated when it differs from this entity's canonical label.

lambda calculus hasEncoding Scott encoding