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"