Content deleted Content added
Citation bot (talk | contribs) Alter: journal. Add: series, arxiv, s2cid, isbn. | You can use this bot yourself. Report bugs here. | Suggested by Ost316 | Category:AfC pending submissions by age/4 days ago | via #UCB_Category |
m Bot: link syntax and minor changes |
||
Line 32:
The Flix compiler disallows most forms of unused or redundant code, including: unused local variables, unused functions, unused formal parameters, unused type parameters, and unused type declarations, such unused constructs are reported as compiler errors<ref>{{cite web |title=Redundancies as Compile-Time Errors |url=https://flix.dev/blog/redundancies-as-compile-time-errors/ |website=flix.dev}}</ref>. [[Variable shadowing]] is also disallowed. The stated rationale is that unused or redundant code is often correlated with erroneous code<ref>{{cite journal |last1=Engler |first1=D. |title=Using redundancies to find errors |journal=IEEE Transactions on Software Engineering |date=October 2003 |volume=29 |issue=10 |pages=915–928 |doi=10.1109/TSE.2003.1237172}}</ref>.
A [[
Flix is [[Open-source_software|open source software]] available under the [[Apache_License|Apache 2.0 License]].
Line 144:
</syntaxhighlight>
A higher-order function can specify that a function argument must be pure, impure, or that it is effect polymorphic.
For example, the definition of <code>Set.exists</code> requires that its function argument <code>f</code> is pure:
Line 348:
* [[Expression-oriented_programming_language|Everything is an expression]]. Most Flix constructs, except for top-level declarations, are expressions that evaluate to values.
* [[
* Pure and impure code is separated. The type and effect system precisely captures whether an expression may produce an effect<ref>{{cite web |title=Taming Impurity with Polymorphic Effects |url=https://flix.dev/blog/taming-impurity-with-polymorphic-effects/ |website=flix.dev}}</ref>.
* The language has no compile-time warnings, only errors.
|