Difference between revisions of "Stateless and pure"

 
Line 1: Line 1:
 
[[Category:ECMA]]
 
[[Category:ECMA]]
  
Stateless can be syntactical or semantic. Semantic means that the feature does not refer to any state. Syntactical means that we annotate the routine with the equal sign so that this is visible to clients.
+
Stateless is first a semantic notion, meaning that a stateless feature does not refer to any state. To show that property to the clients, we add a syntactical notation based on the notion of constants in Eiffel, this looks like:
 
+
Proposal to have stateless routines to use the equal sign of constants, i.e.
+
  
 
<e>f (a: STRING): SOME_TYPE =
 
<e>f (a: STRING): SOME_TYPE =

Latest revision as of 06:13, 29 June 2011


Stateless is first a semantic notion, meaning that a stateless feature does not refer to any state. To show that property to the clients, we add a syntactical notation based on the notion of constants in Eiffel, this looks like:

f (a: STRING): SOME_TYPE =
    do
        create Result.make (a)
        ...
    end

With some validity rules:

  • only unqualified calls to stateless features are permitted.

With some validity rules for redefinition:

  • once a routine is stateless its redefinitions have to be stateless.
  • a stateful routine can become stateless.