Skip to content

Instantly share code, notes, and snippets.

@refs
Last active December 15, 2017 10:12
Show Gist options
  • Save refs/8d5f2e3999f23e8a43d51aa42e35cfec to your computer and use it in GitHub Desktop.
Save refs/8d5f2e3999f23e8a43d51aa42e35cfec to your computer and use it in GitHub Desktop.

Terms

Data Structures and variables

Literal

It is a value written exactly as it's meant to be interpreted. In contrast, a variable is a name that can represent different values during the execution of the program. And a constant is a name that represents the same value throughout a program. But a literal is not a name -- it is the value itself.

In the expression x = 3 x is a variable and 3 is the literal.

Taxonomy

The science of categorization, or classification, of things based on a predetermined system

Flow Control

"There are two areas that are fundamental to programming a computer - resource management and sequencing."

Sequencing

One of the three basic logic structures in computer programming. The other two logic structures are selection and loop. The sequence can contain any number of actions, but no actions can be skipped in the sequence. The program, when run, must perform each action in order with no possibility of skipping an action or branching off to another action. All logic problems in programming can be solved by forming algorithms using only the three logic structures, and they can be combined in an infinite number of ways.

Many languages implement garbage collection that states the issue with resource management. In languages such as Haskell the sequencing task is removed, letting the programmer to worry only about what the program is to compute instead of how or when it is computed.

Lazy evaluation

Laziness is the opposite of strict (it literally means it is not-strict), meaning that nothing is evaluated until it needs to be evaluated

Category?

Purity

A language is pure when it doesn't allow any side-effect (imperative paradigm is based on side-effects, since variables are mutable)

Stub

A method stub or simply stub in software development is a piece of code used to stand in for some other programming functionality. A stub may simulate the behavior of existing code (such as a procedure on a remote machine) or be a temporary substitute for yet-to-be-developed code. Stubs are therefore most useful in porting, distributed computing as well as general software development and testing.

Sources

Why Haskell Matters

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment