Re: RFC 118 (v1) lvalue subs: parameters, explicit assignment, andwantarray() changes

[email protected] (Chaim Frenkel) 23 Aug 2000 18:14:13 -0400
Newsgroups perl.perl6.language.subs
Message-ID <[email protected]>
I would have assumed that a pre/post/invariant would not be used regularly,
but rather under optional control. So this would lose that feature.

<chaim>

>>>>> "DC" == Damian Conway <[email protected]> writes:

>> So if all I want to do is make sure that certain attributes are positive
>> integers, I have to do this:
>> 
>> [ admittedly ungainly solutions snipped ]
>> 
>> I'd much prefer a solution where the positive-only logic was in a method
>> belonging to the class, rather than being attached to afflicted attributes.
>> The only ways I can see of doing this are like Gnat or Andy's RFCs.

DC> TMTTWTDO! ;-)

DC> What you really want is a postcondition or class invariant.
DC> One that asserts that x is always positive:

DC>    sub new { bless {}, $_[0] }
DC>    sub x   { lreturn $_[0]->{x} }

DC>    # and one of...

DC>    post x  { $_[0]->{x} >= 0 }		# post condition on x attribute
DC>    ensure  { $_[0]->{x} >= 0 }		# class invariant
	



-- 
Chaim Frenkel					     Nonlinear Knowledge, Inc.
[email protected]				               +1-718-236-0183