Programming_Language

Terminologies

Fully qualified name

  • In computer programming, a fully qualified name is an unambiguous name that specifies which object, function, or variable a call refers to without regard to the context of the call.

Encapsulation

Curry–Howard correspondence

Currying

  • Currying is the technique of translating a function that takes multiple arguments into a sequence of families of functions, each taking a single argument

    • The idea actually appears in the Begriffsschrift of Gottlob Frege, published in 1879.
  • Function arrows associate to the right and application associates to the left

    • ℕ → ℕ → ℕ stands for ℕ → (ℕ → ℕ)
    • _+_ 2 3 stands for (_+_ 2) 3

Congruence

  • A relation is said to be a congruence for a given function if it is preserved by applying that function. If e is evidence that x ≡ y, then cong f e is evidence that f x ≡ f y, for any function f.