Talk:Walnut/Ordinary Programming

From Erights

(Difference between revisions)
Jump to: navigation, search
(removing spam)
(Parameters implicitly defined by "var", not "def")
Line 1: Line 1:
 +
 +
== Parameters implicitly defined by "var", not "def" ==
 +
 +
Where the article says:
 +
<blockquote>Rather, they are true variables (implicitly declared with "def" )</blockquote>
 +
 +
Aren't they declared by "var"? You can modify them in the object's scope:
 +
 +
<pre>
 +
def makeCar(var name) {
 +
    var x := 0
 +
    var y := 0
 +
    def car {
 +
        to moveTo(newX,newY) {
 +
            name := "new name"
 +
            x := newX
 +
            y := newY
 +
        }
 +
        to getName() {return name}
 +
    }
 +
    return car
 +
}
 +
</pre>
 +
 +
<pre>
 +
? def car := makeCar("a car")
 +
# value: <car>
 +
 +
? car.getName()
 +
# value: "a car"
 +
 +
? car.moveTo(1,2)
 +
? car.getName()
 +
# value: "new name"
 +
</pre>

Revision as of 02:00, 5 December 2010


Parameters implicitly defined by "var", not "def"

Where the article says:

Rather, they are true variables (implicitly declared with "def" )

Aren't they declared by "var"? You can modify them in the object's scope:

 def makeCar(var name) {
     var x := 0
     var y := 0
     def car {
         to moveTo(newX,newY) {
             name := "new name"
             x := newX
             y := newY
         }
         to getName() {return name}
     } 
     return car
 }
? def car := makeCar("a car")
# value: <car>

? car.getName()
# value: "a car"

? car.moveTo(1,2)
? car.getName()
# value: "new name"
Personal tools
more tools