Comparison of multi-paradigm programming languages
From HandWiki
Short description: none
This article possibly contains original research. (August 2009) (Learn how and when to remove this template message) |
Programming languages can be grouped by the number and types of paradigms supported.
Paradigm summaries
A concise reference for the programming paradigms listed in this article.
- Concurrent programming – have language constructs for concurrency, these may involve multi-threading, support for distributed computing, message passing, shared resources (including shared memory), or futures
- Actor programming – concurrent computation with actors that make local decisions in response to the environment (capable of selfish or competitive behaviour)
- Constraint programming – relations between variables are expressed as constraints (or constraint networks), directing allowable solutions (uses constraint satisfaction or simplex algorithm)
- Dataflow programming – forced recalculation of formulas when data values change (e.g. spreadsheets)
- Declarative programming – describes what computation should perform, without specifying detailed state changes cf. imperative programming (functional and logic programming are major subgroups of declarative programming)
- Distributed programming – have support for multiple autonomous computers that communicate via computer networks
- Functional programming – uses evaluation of mathematical functions and avoids state and mutable data
- Generic programming – uses algorithms written in terms of to-be-specified-later types that are then instantiated as needed for specific types provided as parameters
- Imperative programming – explicit statements that change a program state
- Logic programming – uses explicit mathematical logic for programming
- Metaprogramming – writing programs that write or manipulate other programs (or themselves) as their data, or that do part of the work at compile time that would otherwise be done at runtime
- Template metaprogramming – metaprogramming methods in which a compiler uses templates to generate temporary source code, which is merged by the compiler with the rest of the source code and then compiled
- Reflective programming – metaprogramming methods in which a program modifies or extends itself
- Object-oriented programming – uses data structures consisting of data fields and methods together with their interactions (objects) to design programs
- Class-based – object-oriented programming in which inheritance is achieved by defining classes of objects, versus the objects themselves
- Prototype-based – object-oriented programming that avoids classes and implements inheritance via cloning of instances
- Pipeline programming – a simple syntax change to add syntax to nest function calls to language originally designed with none
- Rule-based programming – a network of rules of thumb that comprise a knowledge base and can be used for expert systems and problem deduction & resolution
- Visual programming – manipulating program elements graphically rather than by specifying them textually (e.g. Simulink); also termed diagrammatic programming[1]
Language overview
| Language | Script error: No such module "Vertical header". | Script error: No such module "Vertical header". | Script error: No such module "Vertical header". | Script error: No such module "Vertical header". | Script error: No such module "Vertical header". | Script error: No such module "Vertical header". | Script error: No such module "Vertical header". | Script error: No such module "Vertical header". | Script error: No such module "Vertical header". | Script error: No such module "Vertical header". | Script error: No such module "Vertical header". | Script error: No such module "Vertical header". | Script error: No such module "Vertical header". | Script error: No such module "Vertical header". | Script error: No such module "Vertical header". | Script error: No such module "Vertical header". | Other |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Ada |
5 | Yes |
N/A | N/A | N/A | Yes | N/A | N/A | Yes | Yes | N/A | N/A | Yes |
N/A | N/A | N/A | N/A |
| ALF | 2 | N/A | N/A | N/A | N/A | N/A | Yes | N/A | N/A | N/A | Yes | N/A | N/A | N/A | N/A | N/A | N/A |
| AmigaE |
data-sort-value="" style="background: #ececec; color: #2C2C2C; vertical-align: middle; font-size: smaller; text-align: center; " class="table-na" | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | Yes | N/A | N/A | Yes |
N/A | N/A | N/A | N/A | |
| APL | 3 | N/A | N/A | N/A | N/A | N/A | Yes | N/A | N/A | Yes | N/A | N/A | N/A | N/A | N/A | N/A | Array (multi-dimensional) |
| BETA |
data-sort-value="" style="background: #ececec; color: #2C2C2C; vertical-align: middle; font-size: smaller; text-align: center; " class="table-na" | N/A | N/A | N/A | N/A | N/A | Yes | N/A | N/A | Yes | N/A | N/A | Yes |
N/A | N/A | N/A | N/A | |
| C++ | 7 (15) | Yes |
Library |
Library |
Library |
Library |
Yes | Yes |
Yes |
Yes | Library |
Library |
Yes |
Library |
N/A | Library |
Array (multi-dimensional; using STL) |
| C# | 6 (7) | Yes | N/A | Library |
N/A | N/A | Yes |
N/A | Yes | Yes | N/A | Yes | Yes |
N/A | N/A | N/A | Reactive |
| ChucK |
style="background:#9F9;vertical-align:middle;text-align:center;" class="table-yes"|Yes | N/A | N/A | N/A | N/A | N/A | N/A | N/A | Yes | N/A | N/A | Yes |
N/A | N/A | N/A | N/A | |
| Claire | 2 | N/A | N/A | N/A | N/A | N/A | Yes | N/A | N/A | N/A | N/A | N/A | Yes |
N/A | N/A | N/A | N/A |
| Clojure | 5 | Yes |
N/A | N/A | Yes | N/A | Yes |
Yes |
N/A | N/A | Library |
N/A | N/A | Yes |
N/A | N/A | Multiple dispatch, |
| Common Lisp | 7 (14) | Library |
Library |
Library |
Yes |
Library |
Yes | Yes | Yes |
Yes | Library |
Yes | Yes |
Library |
Library |
Library |
Multiple dispatch, meta-OOP system, |
| Curl | 5 | N/A | N/A | N/A | N/A | N/A | Yes | N/A | Yes |
Yes | N/A | Yes | Yes |
N/A | N/A | N/A | N/A |
| Curry | 4 | Yes | Yes | N/A | N/A | N/A | Yes | N/A | N/A | N/A | Yes | N/A | N/A | N/A | N/A | N/A | N/A |
| D (version 2.0) |
7 | Yes |
N/A | N/A | N/A | N/A | Yes | Yes |
Yes |
Yes | N/A | Yes | Yes |
N/A | N/A | N/A | N/A |
| Delphi | 3 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | Yes |
Yes | N/A | N/A | Yes |
N/A | N/A | N/A | N/A |
| Dylan |
data-sort-value="" style="background: #ececec; color: #2C2C2C; vertical-align: middle; font-size: smaller; text-align: center; " class="table-na" | N/A | N/A | N/A | N/A | N/A | Yes | N/A | N/A | N/A | N/A | Yes | Yes |
N/A | N/A | N/A | N/A | |
| E | 3 | Yes | N/A | N/A | N/A | Yes | N/A | N/A | N/A | N/A | N/A | N/A | Yes |
N/A | N/A | N/A | N/A |
| ECMAScript |
4 (5) | Partial |
N/A | N/A | Library |
N/A | Yes | N/A | N/A | Yes | N/A | Yes | Yes |
Library |
N/A | N/A | Reactive, |
| Erlang | 3 | Yes | N/A | N/A | Yes | Yes | Yes | N/A | N/A | N/A | N/A | N/A | N/A | Yes | N/A | N/A | N/A |
| Elixir | 4 | Yes | N/A | N/A | N/A | Yes | Yes | Yes | N/A | N/A | N/A | N/A | N/A | Yes | N/A | N/A | N/A |
| Elm | 6 | Yes | N/A | Yes | Yes | N/A | Yes (pure) |
N/A | Yes | N/A | N/A | N/A | N/A | Yes | N/A | N/A | Reactive |
| F# | 7 (8) | Yes |
N/A | Library |
Yes | N/A | Yes | N/A | Yes | Yes | N/A | Yes | Yes |
N/A | N/A | N/A | Reactive |
| Fortran | 4 (5) | Yes | N/A | N/A | N/A | N/A | Yes |
N/A | Yes |
N/A | N/A | N/A | Yes |
N/A | N/A | N/A | Array (multi-dimensional) |
| Go | 4 | Yes | N/A | N/A | N/A | N/A | N/A | N/A | N/A | Yes | N/A | Yes | N/A | Yes | N/A | N/A | N/A |
| Haskell | 8 (15) | Yes | Library |
Library |
Yes | Library |
Yes (lazy) (pure) |
Yes |
Yes | Yes | Library |
N/A | Partial |
Yes | Yes | Library |
Literate, reactive, dependent types (partial) |
| Io | 4 | Yes |
N/A | N/A | N/A | N/A | Yes | N/A | N/A | Yes | N/A | N/A | Yes |
N/A | N/A | N/A | N/A |
| J |
data-sort-value="" style="background: #ececec; color: #2C2C2C; vertical-align: middle; font-size: smaller; text-align: center; " class="table-na" | N/A | N/A | N/A | N/A | N/A | Yes | N/A | N/A | Yes | N/A | N/A | Yes |
N/A | N/A | N/A | N/A | |
| Java | 6 | Yes | Library |
Library |
N/A | N/A | Yes | N/A | Yes | Yes | N/A | Yes | Yes |
N/A | N/A | N/A | N/A |
| Julia | 9 (17) | Yes | Library |
Library |
Library |
Yes | Yes (eager) | Yes | Yes | Yes | Library |
Yes | Partial |
Yes | N/A | Library |
Multiple dispatch, Array (multi-dimensional); optionally lazy |
| Kotlin | 8 | Yes | N/A | N/A | N/A | N/A | Yes | Yes | Yes | Yes | N/A | Yes | Yes | Yes | N/A | N/A | N/A |
| LabVIEW | 4 | Yes | N/A | Yes | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | Yes | N/A | Yes | N/A | N/A |
| Lava | 2 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | Yes |
N/A | Yes | N/A | N/A |
| LispWorks (version 6.0 with support for symmetric multi-processing, rules, logic (Prolog), CORBA) | 9 | Yes | N/A | N/A | N/A | Yes | Yes | Yes | N/A | Yes | Yes | Yes | Yes |
N/A | N/A | Yes | N/A |
| Lua |
3 | N/A | N/A | N/A | N/A | N/A | Yes | N/A | N/A | Yes | N/A | N/A | Yes |
N/A | N/A | N/A | N/A |
| MATLAB | 6 (10) | Toolbox |
Toolbox |
Yes |
N/A | Toolbox |
N/A | Yes |
Yes |
N/A | N/A | Yes |
Yes |
N/A | Yes |
N/A | Array (multi-dimensional) |
| Nemerle | 7 | Yes | N/A | N/A | N/A | N/A | Yes | Yes | Yes | Yes | N/A | Yes | Yes |
N/A | N/A | N/A | N/A |
| Object Pascal | 4 | Yes | N/A | N/A | N/A | N/A | Yes | N/A | N/A | Yes | N/A | N/A | Yes |
N/A | N/A | N/A | N/A |
| OCaml | 4 | N/A | N/A | N/A | N/A | N/A | Yes | N/A | Yes | Yes | N/A | N/A | Yes |
N/A | N/A | N/A | N/A |
| Oz | 11 | Yes | Yes | Yes | Yes | Yes | Yes | N/A | N/A | Yes | Yes | N/A | Yes |
Yes | N/A | Yes | N/A |
| Perl |
style="background:#9F9;vertical-align:middle;text-align:center;" class="table-yes"|Yes |
N/A | Yes |
N/A | N/A | Yes | Yes | N/A | Yes | N/A | Yes |
Yes |
Yes | N/A | N/A | N/A | |
| PHP |
4 | N/A | N/A | N/A | N/A | N/A | Yes | N/A | N/A | Yes | N/A | Yes | Yes |
N/A | N/A | N/A | N/A |
| Poplog | 3 | N/A | N/A | N/A | N/A | N/A | Yes | N/A | N/A | Yes | Yes | N/A | N/A | N/A | N/A | N/A | N/A |
| Prograph | 3 | N/A | N/A | Yes | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | Yes |
N/A | Yes | N/A | N/A |
| Python | 5 (10) | Library |
Library |
N/A | N/A | Library |
Yes | Yes |
Yes |
Yes | Library |
Yes | Yes |
N/A | N/A | N/A | Structured |
| R | 4 (6) | Library |
N/A | N/A | N/A | Library |
Yes | N/A | N/A | Yes | N/A | Yes | Yes | Yes |
N/A | N/A | Array (multi-dimensional) |
| Racket | 10 | Yes |
Yes |
Yes |
N/A | Yes |
Yes | Yes | N/A | Yes | Yes | Yes | Yes | N/A | N/A | N/A | Lazy |
| Raku | 10 | Yes |
Library |
Yes |
N/A | Library |
Yes | Yes |
Yes |
Yes | N/A | Yes |
Yes |
Yes | N/A | N/A | Multiple dispatch, lazy lists, reactive. |
| ROOP | 3 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | Yes | Yes | N/A | N/A | N/A | N/A | Yes | N/A |
| Ruby | 5 | N/A | N/A | N/A | N/A | N/A | Yes | Yes | N/A | Yes | N/A | Yes | Yes |
N/A | N/A | N/A | N/A |
| Rust (version 1.0.0-alpha) | 6 | Yes |
N/A | N/A | N/A | N/A | Yes | Yes |
Yes |
Yes | N/A | N/A | Yes | N/A | N/A | N/A | Linear, affline, and ownership types |
| Sather |
data-sort-value="" style="background: #ececec; color: #2C2C2C; vertical-align: middle; font-size: smaller; text-align: center; " class="table-na" | N/A | N/A | N/A | N/A | N/A | Yes | N/A | N/A | N/A | N/A | N/A | Yes |
N/A | N/A | N/A | N/A | |
| Scala |
9 | Yes |
N/A | Yes |
Yes | N/A | Yes | Yes | Yes | Yes | N/A | Yes | Yes |
N/A | N/A | N/A | N/A |
| Simula |
data-sort-value="" style="background: #ececec; color: #2C2C2C; vertical-align: middle; font-size: smaller; text-align: center; " class="table-na" | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | Yes | N/A | N/A | Yes |
N/A | N/A | N/A | N/A | |
| SISAL | 3 | Yes | N/A | Yes | N/A | N/A | Yes | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| Spreadsheets | 2 | N/A | N/A | N/A | N/A | N/A | Yes | N/A | N/A | N/A | N/A | N/A | N/A | N/A | Yes | N/A | N/A |
| Swift | 7 | Yes | N/A | N/A | N/A | N/A | Yes | Yes | Yes | Yes | N/A | Yes | Yes |
N/A | N/A | N/A | Block-structured |
| Tcl with Snit extension |
data-sort-value="" style="background: #ececec; color: #2C2C2C; vertical-align: middle; font-size: smaller; text-align: center; " class="table-na" | N/A | N/A | N/A | N/A | N/A | Yes |
N/A | N/A | Yes | N/A | N/A | Yes |
N/A | N/A | N/A | N/A | |
| Visual Basic .NET | 6 (7) | Yes | N/A | Library |
N/A | N/A | Yes | N/A | Yes | Yes | N/A | Yes | Yes |
N/A | N/A | N/A | Reactive |
| Windows PowerShell | 6 | N/A | N/A | N/A | N/A | N/A | Yes | N/A | Yes | Yes | N/A | Yes | Yes |
Yes | N/A | N/A | N/A |
| Wolfram Language & Mathematica | 13 |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
N/A | Yes | Knowledge Based |
See also
- Carbon (programming language) — multi-paradigm language being developed at Google to be a successor to C++
- Programming paradigm
- List of programming languages by type
- Domain-specific language
- Domain-specific multimodeling
Notes
- ↑ rendezvous and monitor-like based
- ↑ 2.00 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21 2.22 2.23 2.24 2.25 2.26 2.27 2.28 2.29 2.30 2.31 2.32 2.33 2.34 class-based
- ↑ 3.0 3.1 3.2 3.3 3.4 template metaprogramming
- ↑ 4.0 4.1 4.2 using TPL Dataflow
- ↑ only lambda support (lazy functional programming)
- ↑ 6.0 6.1 6.2 using Reactive Extensions (Rx)
- ↑ multiple dispatch, method combinations
- ↑ 8.0 8.1 8.2 8.3 8.4 actor programming
- ↑ promises, native extensions
- ↑ using Node.js' cluster module or child_process.fork method, web workers in the browser, etc.
- ↑ 11.0 11.1 11.2 11.3 Prototype-based
- ↑ using Reactive Extensions (RxJS)
- ↑ in Node.js via their events module
- ↑ in browsers via their native EventTarget API
- ↑ 15.0 15.1 15.2 purely functional
- ↑ parameterized classes
- ↑ immutable
- ↑ Uses structs with function polymorphism and multiple dispatch
- ↑ Akka
Citations
- ↑ Bragg, S.D.; Driskill, C.G. (20–22 September 1994). "Diagrammatic-graphical programming languages and DoD-STD-2167A". Proceedings of AUTOTESTCON '94 (Facebook. Institute of Electrical and Electronics Engineers (IEEE). pp. 211–220. doi:10.1109/AUTEST.1994.381508. ISBN 978-0-7803-1910-3.
- ↑ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 9: Tasks and Synchronization
- ↑ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3 Annex E: Distributed Systems
- ↑ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 12: Generic Units
- ↑ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 6: Subprograms
- ↑ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, 3.9 Tagged Types and Type Extensions
- ↑ Thread support
- ↑ Atomics support
- ↑ Memory model
- ↑ Gecode
- ↑ SystemC
- ↑ Boost.Iostreams
- ↑ Boolinq
- ↑ "AraRat". https://www.cs.technion.ac.il/~lkeren/scp.pdf.
- ↑ OpenMPI
- ↑ Boost.MPI
- ↑ Boost.MPL
- ↑ LC++
- ↑ Castor
- ↑ Reflect Library
- ↑ N3534
- ↑ Boost.Spirit
- ↑ Clojure - Concurrent Programming
- ↑ Clojure - core.async
- ↑ Clojure - Functional Programming
- ↑ Clojure - Macros
- ↑ Clojure - core.logic
- ↑ Clojure - Threading Macros Guide
- ↑ Multimethods and Hierarchies
- ↑ Agents and Asynchronous Actions
- ↑ "concurrency". https://www.cliki.net/Concurrency.
- ↑ [1] constraint programming inside CL through extensions
- ↑ [2] dataflow extension
- ↑ [3] by creating DSLs using the built-in metaprogramming; also see note on functional, constraint and logic paradigms, which are part of declarative
- ↑ [4] MPI, etc via language extensions
- ↑ template metaprogramming using macros (see C++)
- ↑ [5] [6] [7] Prolog implemented as a language extension
- ↑ Common Lisp Object System see Wikipedia article on CLOS, the Common Lisp Object System.
- ↑ implemented by the user via a short macro, example of implementation
- ↑ - Visual programming tool based on Common Lisp
- ↑ [8] rule-based programming extension
- ↑ [9] through the Meta Object Protocol
- ↑ D Language Feature Table
- ↑ Phobos std.algorithm
- ↑ D language String Mixins
- ↑ The Little JavaScripter demonstrates fundamental commonality with Scheme, a functional language.
- ↑ Object-Oriented Programming in JavaScript gives an overview of object-oriented programming techniques in JavaScript.
- ↑ "React – A JavaScript library for building user interfaces". 2019-04-08. https://reactjs.org/.
- ↑ "TNG-Hooks". 2019-04-08. https://github.com/getify/tng-hooks.
- ↑ "Lodash documentation". 2019-04-08. https://lodash.com/docs/4.17.11#flow.
- ↑ "mori". 2019-04-08. https://swannodette.github.io/mori/#pipeline.
- ↑ "TNG-Hooks". 2019-04-08. https://github.com/getify/tng-hooks.
- ↑ "Prolog embedding". https://hackage.haskell.org/package/hswip.
- ↑ "Functional Reactive Programming". https://wiki.haskell.org/Functional_Reactive_Programming.
- ↑ Cloud Haskell
- ↑ "Template Haskell". https://wiki.haskell.org/Template_Haskell.
- ↑ "Logict: A backtracking logic-programming monad". https://hackage.haskell.org/package/logict.
- ↑ Kollmansberger, Steve; Erwig, Martin (30 May 2006). "Haskell Rules: Embedding Rule Systems in Haskell". https://web.engr.oregonstate.edu/~erwig/HaskellRules/HaskellRules_June06.pdf.
- ↑ https://jcp.org/en/jsr/detail?id=331 JSR 331: Constraint Programming API
- ↑ https://github.com/GoogleCloudPlatform/DataflowJavaSDK Google Cloud Platform Dataflow SDK
- ↑ "JuliaOpt/JuMP.jl". JuliaOpt. 11 February 2020. https://github.com/JuliaOpt/JuMP.jl.
- ↑ "GitHub - MikeInnes/DataFlow.jl". 2019-01-15. https://github.com/MikeInnes/DataFlow.jl.
- ↑ "GitHub - JuliaGizmos/Reactive.jl: Reactive programming primitives for Julia". 2018-12-28. https://github.com/JuliaGizmos/Reactive.jl.
- ↑ https://github.com/davidanthoff/Query.jl Query almost anything in julia
- ↑ https://github.com/lilinjn/LilKanren.jl A collection of Kanren implementations in Julia
- ↑ "GitHub - abeschneider/PEGParser.jl: PEG Parser for Julia". 2018-12-03. https://github.com/abeschneider/PEGParser.jl.
- ↑ "GitHub - gitfoxi/Parsimonious.jl: A PEG parser generator for Julia". 2017-08-03. https://github.com/gitfoxi/Parsimonious.jl.
- ↑ Lazy https://github.com/MikeInnes/Lazy.jl
- ↑ "Execute loop iterations in parallel". http://mathworks.com/help/distcomp/parfor.html.
- ↑ "Write Constraints". https://mathworks.com/help/optim/write-constraints.html.
- ↑ "Getting Started with SimEvents". https://mathworks.com/help/simevents/getting-started-with-simevents.html.
- ↑ "Execute loop iterations in parallel". http://mathworks.com/help/distcomp/parfor.html.
- ↑ "Execute MATLAB expression in text - MATLAB eval". https://mathworks.com/help/matlab/ref/eval.html.
- ↑ "Determine class of object". https://mathworks.com/help/matlab/ref/class.html.
- ↑ "Class Metadata". https://mathworks.com/help/matlab/get-information-about-classes-and-objects.html.
- ↑ "Object-Oriented Programming". https://mathworks.com/help/matlab/object-oriented-programming.html.
- ↑ "Simulink". https://mathworks.com/help/simulink/.
- ↑ interpreter based threads
- ↑ Higher Order Perl
- ↑ PHP Manual, Chapter 17. Functions
- ↑ PHP Manual, Chapter 19. Classes and Objects (PHP 5)
- ↑ PHP Manual, Anonymous functions
- ↑ "Parallel Processing and Multiprocessing in Python". https://wiki.python.org/moin/ParallelProcessing.
- ↑ "threading — Higher-level threading interface". https://docs.python.org/2/library/threading.html.
- ↑ "python-constraint". https://pypi.python.org/pypi/python-constraint.
- ↑ "DistributedProgramming". https://wiki.python.org/moin/DistributedProgramming.
- ↑ "Chapter 9. Metaprogramming". http://chimera.labs.oreilly.com/books/1230000000393/ch09.html.
- ↑ "Metaprogramming". https://python-3-patterns-idioms-test.readthedocs.io/en/latest/Metaprogramming.html.
- ↑ "PEP 443 – Single-dispatch generic functions". https://www.python.org/dev/peps/pep-0443/.
- ↑ "PEP 484 – Type Hints". https://www.python.org/dev/peps/pep-0484/#generics.
- ↑ "PyDatalog". https://sites.google.com/site/pydatalog/.
- ↑ "Futureverse". https://www.futureverse.org/.
- ↑ "future batchtools". https://future.batchtools.futureverse.org/.
- ↑ "Magrittr: A Forward Pipe Operator for R". 17 November 2020. https://cran.r-project.org/package=magrittr.
- ↑ Racket Guide: Concurrency and Synchronization
- ↑ The Rosette Guide
- ↑ FrTime: A Language for Reactive Programs
- ↑ Racket Guide: Distributed Places
- ↑ Lazy Racket
- ↑ Channels and other mechanisms
- ↑ "Problem Solver module". https://raku.land/github:FCO/ProblemSolver.
- ↑ Feed operator
- ↑ https://github.com/perl6/doc/issues/1744#issuecomment-360565196 Cro module
- ↑ "Meta-programming: What, why and how". 2011-12-14. https://perl6advent.wordpress.com/2011/12/14/meta-programming-what-why-and-how/.
- ↑ https://perl6advent.wordpress.com/2009/12/18/day-18-roles/ Parametrized Roles
- ↑ "Meta-object protocol (MOP)". https://docs.perl6.org/language/mop.
- ↑ https://docs.perl6.org/language/classtut Classes and Roles
- ↑ "The Rust macros guide". http://doc.rust-lang.org/1.0.0-alpha/book/macros.html.
- ↑ "The Rust compiler plugins guide". http://doc.rust-lang.org/1.0.0-alpha/book/plugins.html.
- ↑ The Rust Reference §6.1.3.1
- ↑ An Overview of the Scala Programming Language
- ↑ Scala Language Specification
- ↑ "Tcl Programming/Introduction". https://en.wikibooks.org/wiki/Tcl_Programming/Introduction#One_language.2C_many_styles.
- ↑ "TCLLIB - Tcl Standard Library: snitfaq". https://tmml.sourceforge.net/doc/tcllib/snitfaq.html.
- ↑ Notes for Programming Language Experts, Wolfram Language Documentation.
- ↑ External Programs, Wolfram Language Documentation.
References
- Jim Coplien, Multiparadigm Design for C++, Addison-Wesley Professional, 1998.
Template:Programming paradigms navbox
