Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re^2: lvalue considered harmful...

by adrianh (Chancellor)
on Dec 14, 2002 at 20:58 UTC ( #219893=note: print w/ replies, xml ) Need Help??


in reply to Re: lvalue considered harmful...
in thread Tutorial: Introduction to Object-Oriented Programming

One of my favourite languages, Pop-11, does it in quite a nice way. You define a separate subroutine for the lvalue side - known as an updater.

For example, a function to access and update the second element of a linked list can be written in Pop-11 like this:

define second(list); hd(tl(list)) enddefine; define updaterof second(value, list); value -> hd(tl(list)) enddefine; vars list; [a b c d] -> list; second(list) => ** b 42 -> second(list); second(list) => ** 42 list => ** [a 42 c d]

All the advantages of writing separate setter/getter functions without the noise (as I see it) in the function names.

In Pop-11 lvalues are poorly named, since they appear on the right! Doing value -> something in Pop-11 is the same as something = value in perl.

I find it reads well (something goes into something else) and it also solves that whole "confusing = with ==" problem.


Comment on Re^2: lvalue considered harmful...
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://219893]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (3)
As of 2014-10-01 01:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (386 votes), past polls