BASIC
BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use. Initially, BASIC concentrated on supporting straightforward mathematical work, with matrix arithmetic support from its initial implementation as a batch language, and character string functionality being added by 1965. The emergence of BASIC took place as part of a wider movement towards time-sharing systems. Some dialects of BASIC supported matrices and matrix operations, which can be used to solve sets of simultaneous linear algebraic equations. These dialects would directly support matrix operations such as assignment, addition, multiplication (of compatible matrix types), and evaluation of a determinant. BASIC declined in popularity in the 1990s, as more powerful microcomputers came to market and programming languages with advanced features (such as Pascal and C) became tenable on such computers.
Learn more
Unlambda
Unlambda is a programming language. Nothing remarkable there. The originality of Unlambda is that it stands as the unexpected intersection of two marginal families of languages. Functional programming languages, of which the canonical representative is Scheme (a Lisp dialect). This means that the basic object manipulated by the language (and indeed the only one as far as Unlambda is concerned) is the function. Rather, Unlambda uses a functional approach to programming: the only form of objects it manipulates are functions. Each function takes a function as an argument and returns a function. Apart from a binary “apply” operation, Unlambda provides several built-in functions (the most important ones being the K and S combinators). User-defined functions can be created, but not saved or named, because Unlambda does not have any variables.
Learn more
Scala
Scala combines object-oriented and functional programming in one concise, high-level language. Scala's static types help avoid bugs in complex applications, and its JVM and JavaScript runtimes let you build high-performance systems with easy access to huge ecosystems of libraries. The Scala compiler is smart about static types. Most of the time, you need not tell it the types of your variables. Instead, its powerful type inference will figure them out for you. In Scala, case classes are used to represent structural data types. They implicitly equip the class with meaningful toString, equals and hashCode methods, as well as the ability to be deconstructed with pattern matching. In Scala, functions are values, and can be defined as anonymous functions with a concise syntax.
Learn more
Racket
Racket is a general-purpose, multi-paradigm programming language that serves as a modern dialect of Lisp and a descendant of Scheme. It is designed as a platform for programming language design and implementation, enabling developers to create new domain-specific and general-purpose languages. Racket's core language includes features such as macros, modules, lexical closures, tail calls, delimited continuations, parameters (fluid variables), software contracts, green threads, and OS threads. The language also comes with primitives, such as event spaces and custodians, which control resource management and enable the language to act like an operating system for loading and managing other programs. Further extensions to the language are created with the powerful macro system, which, together with the module system and custom parsers, can control all aspects of a language. Most language constructs in Racket are implemented as macros in the base language.
Learn more