Comparison of multi-paradigm programming languages: Difference between revisions

Content deleted Content added
m Set Raku row alphabetically; clear template before table for maximum width (not clash with TOC)
WikiCleanerBot (talk | contribs)
m v2.03b - Bot T20 CW#61 - WP:WCW project (Reference before punctuation)
Line 79:
|-
| [[Clojure]] || 5
| {{yes}}<ref>[https://clojure.org/about/concurrent_programming Clojure - Concurrent Programming]</ref><ref>[https://github.com/clojure/core.async Clojure - core.async]</ref> || {{no}} || {{no}} || {{yes}} || {{no}} || {{yes}}<ref>[https://clojure.org/about/functional_programming Clojure - Functional Programming]</ref> || {{yes}}<ref>[https://clojure.org/reference/macros Clojure - Macros]</ref> || {{no}} || {{no}} || {{partial|Library}}<ref>[https://github.com/clojure/core.logic/ Clojure - core.logic]</ref> || {{no}} || {{no}} || {{yes}}<ref>[https://clojure.org/guides/threading_macros Clojure - Threading Macros Guide]</ref> || {{partial|Editor}}<ref>{{Cite web | url=http://lighttable.com/ | title=Light Table| date=2019-04-08}}</ref> || {{no}} || [[Multiple dispatch]],<ref>[https://clojure.org/reference/multimethods Multimethods and Hierarchies]</ref>, Agents<ref>[https://clojure.org/reference/agents Agents and Asynchronous Actions]</ref>
|-
| [[Common Lisp]] || 5
| {{partial|Library}}<ref>[https://www.cliki.net/Concurrency] many concurrency paradigms implemented as language extensions</ref> || {{partial|Library}}<ref>[https://www.cliki.net/screamer] constraint programming inside CL through extensions</ref> || {{partial|Library}}<ref>[https://www.cliki.net/Cells] dataflow extension</ref>|| {{yes}}<ref>[http://www.gigamonkeys.com/book/practical-an-html-generation-library-the-interpreter.html] by creating DSLs using the built-in metaprogramming; also see note on functional, constraint and logic paradigms, which are part of declarative</ref>|| {{partial|Library}}<ref>[https://www.cliki.net/Distributed] MPI, etc via language extensions</ref> || {{yes}} || {{yes}} || {{yes}}<ref>template metaprogramming using macros (see C++)</ref>|| {{yes}} || {{partial|Library}}<ref>[https://www.cliki.net/Prolog] [https://franz.com/products/prolog/] [http://www.lispworks.com/products/knowledgeworks.html] Prolog implemented as a language extension</ref> || {{yes}} || {{yes}} (multiple dispatch, method combinations)<ref>[[Common Lisp Object System]] see Wikipedia article on CLOS, the Common Lisp Object System.</ref><ref group="a" name="class" /> || {{partial|Library}}<ref>implemented by the user via a short macro, example of implementation: [http://blog.vjeux.com/2011/lisp/lisp-chaining-operator.html]</ref> || {{no}}|| {{partial|Library}}<ref>[http://lisa.sourceforge.net/] rule-based programming extension</ref> || Multiple dispatch, meta-OOP system,<ref>[https://common-lisp.net/project/ecl/static/manual/ch31.html] through the Meta Object Protocol</ref>, Language is extensible via metaprogramming.
|-
| [[Curl (programming language)|Curl]] || 5
Line 100:
|-
| [[ECMAScript]]<ref>[http://www.crockford.com/javascript/little.html The Little JavaScripter] demonstrates fundamental commonality with Scheme, a functional language.</ref><ref>[http://mckoss.com/jscript/object.htm Object Oriented Programming in JavaScript] {{Webarchive|url=https://web.archive.org/web/20190210070220/http://mckoss.com/jscript/object.htm |date=2019-02-10 }} gives an overview of object-oriented programming techniques in JavaScript.</ref> ([[ActionScript]], [[E4X]], [[JavaScript]], [[JScript]]) || 4 (5)
| {{partial|partial (promises, native extensions)}}<ref group="a" name="nodejs-cluster">using [[Node.js]]' [https://nodejs.org/api/cluster.html cluster] module or [https://nodejs.org/api/child_process.html#child_process_child_process_fork_modulepath_args_options child_process.fork] method, [https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers web workers] in the browser, etc.</ref> || {{no}} || {{no}} || {{partial|Library}}<ref>{{Cite web | url=https://reactjs.org/ | title=React – A JavaScript library for building user interfaces| date=2019-04-08}}</ref><ref>{{Cite web | url=https://reactjs.org/ | title=React – A JavaScript library for building user interfaces| date=2019-04-08}}</ref><ref>{{Cite web | url=https://github.com/getify/tng-hooks | title=TNG-Hooks| date=2019-04-08}}</ref> || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{yes}} || {{yes}}<ref group="a" name="prototype">Prototype-based</ref> || {{partial|Library}}<ref>{{Cite web | url=https://lodash.com/docs/4.17.11#flow | title=Lodash documentation| date=2019-04-08}}</ref><ref>{{Cite web | url=https://swannodette.github.io/mori/#pipeline | title=mori| date=2019-04-08}}</ref> || {{partial|Editor}}<ref>{{Cite web | url=http://lighttable.com/ | title=Light Table| date=2019-04-08}}</ref> || {{no}} || reactive,<ref group="a" name="rxjs">using [http://reactivex.io/rxjs/ Reactive Extensions (RxJS)]</ref><ref>{{Cite web | url=https://github.com/getify/tng-hooks | title=TNG-Hooks| date=2019-04-08}}</ref>, event driven<ref group="a" name="node-events">in Node.js via their [https://nodejs.org/api/events.html events] module</ref><ref group="a" name="dom-events">in browsers via their native [https://developer.mozilla.org/en-US/docs/Web/API/EventTarget EventTarget] API</ref>
 
|-