Strict programming language: Difference between revisions

Content deleted Content added
m References: clean up
Examples: Python is strict. there aren't many good sources I could google up but I found one that does the job. turn into a 3-bucket listing
Line 7:
 
==Examples==
Nearly all [[programming language]]s in common use today are strict. Examples include [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[Perl]] (all versions, i.e. through version&nbsp;5 and version 7; Raku), formerly[[Python known(programming as Perl 6language)|Python]], has lazy lists<ref>{{Citecite book |last1=Lott |first1=Steven web|title=RakuFunctional Python Programming/Lazy. Lists|date=2015 and|publisher=Packt FeedsPublishing - Wikibooks|___location=Birmingham, openUK books for an open world|urlisbn=https://en.wikibooks.org/wiki/Raku_Programming/Lazy_Lists_and_Feeds|access978-date=20211-0278439-09699-2 |websitepage=en.wikibooks.org35 |quote=Python focuses on strict evaluation}}</ref>), [[Ruby (programming language)|Ruby]], [[Common Lisp]], and [[ML (programming language)|ML]]. Examples for non-strict languages are [[Haskell (programming language)|Haskell]], [[Miranda (programming language)|Miranda]], and [[Clean (programming language)|Clean]].{{Sfn|Cluet & Hull|1998|pp=25–26}}
 
Languages whose ordinary functions are strict but which provide a [[Macro (computer science)#Hygienic macros|macro system]] to build non-strict functions include [[Julia (programming language)|Julia]],<ref>{{Citation|last=Innes|first=Mike J.|title=MikeInnes/Lazy.jl|date=2021-02-06|url=https://github.com/MikeInnes/Lazy.jl|access-date=2021-02-09}}</ref> and [[Scheme (programming language)|Scheme]].
Some strict programming languages include features that mimic laziness. Raku, formerly known as Perl 6, has lazy lists.<ref>{{Cite web|title=Raku Programming/Lazy Lists and Feeds - Wikibooks, open books for an open world|url=https://en.wikibooks.org/wiki/Raku_Programming/Lazy_Lists_and_Feeds|access-date=2021-02-09|website=en.wikibooks.org}}</ref> Python has generator functions.<ref>{{cite book |last1=Lott |first1=Steven |title=Functional Python Programming. |date=2015 |publisher=Packt Publishing |___location=Birmingham, UK |isbn=978-1-78439-699-2 |page=35 |quote=a generator function is non-strict. [...] we can leverage generator functions to create lazy evaluation.}}</ref> [[Julia (programming language)|Julia]] provides a [[Macro (computer science)#Hygienic macros|macro system]] to build non-strict functions<ref>{{Citation|last=Innes|first=Mike J.|title=MikeInnes/Lazy.jl|date=2021-02-06|url=https://github.com/MikeInnes/Lazy.jl|access-date=2021-02-09}}</ref>, as does [[Scheme (programming language)|Scheme]].
 
Examples for non-strict languages are [[Haskell (programming language)|Haskell]], [[Miranda (programming language)|Miranda]], and [[Clean (programming language)|Clean]].{{Sfn|Cluet & Hull|1998|pp=25–26}}
 
==Explanation==