Skip to content

Latest commit

 

History

History
35 lines (25 loc) · 878 Bytes

bindings.md

File metadata and controls

35 lines (25 loc) · 878 Bytes
layout title category tags order
developer-doc
Bindings
semantics
semantics
bindings
1

Bindings

A "binding" is a portion of and Enso program that creates a new name and binds a value to that name.

Binding Return Value

While some expression-based languages with bindings have the binding return the value assigned to the binding, we feel that this is far too error prone. Consider the following code as a demonstration:

if x = someExprEvaluatingToBool then foo else bar

This is the perennially-discussed C++ bug where you fail to type == in an if-statement.

Enso, instead, takes the approach where a binding expression returns the singleton value of the type Nothing, making the above-written code a type error.