Talk:Walnut/Ordinary Programming
From Erights
(Difference between revisions)
(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"

