develooper Front page | perl.perl6.language | Postings from February 2009

Masak's S29 list

Thread Next
From:
Timothy S. Nelson
Date:
February 26, 2009 18:46
Subject:
Masak's S29 list
Message ID:
alpine.LRH.1.10.0902271201570.4781@gwalcmai.nelson.org.au
 	Here's my comments on Carl Masak's S29 list.  Note that some of the 
things that say that they're "now in" something still need a lot of work.

#  Range objects have .from, .to, .min, .max and .minmax methods

Now in S32/Containers.pod

# .contains on Hash and Array

 	Where's this from?

# Code has a .sig

 	Seems (from what I can tell) to be synonymous with .signature, so I 
standardised on .signature.

# .ACCEPTS and .REJECTS on most everything -- provided by the Pattern role. 
Likely a mistake to put one under each section, though. Perhaps put one under 
Object and put a reference to S03.

 	What does Pattern?  Should we have Object does Pattern?

# The cat contextualizer.

 	There's a .cat() method on Container in Containers.pod.  Is this what 
you want?

# Object has .print and .say.

 	Ok, this makes things difficult.  The algorithm of these functions is 
obviously something like:
1.	Object -> Str
2.	Output Str on handle

 	Something that makes this interesting is, what happens when you call 
IO.print?  At the moment, S16 says that this will print a string on the IO 
object.  So to print the IO object itself, you would have to do the algorithm 
above manually.

 	The obvious solution is to rename the function on the IO object to 
something like "doprint", and have Object.print, Object.say, and Object.printf 
all call on IO.doprint.

 	Where this starts to get difficult is that the IO object currently has 
input/output record/field separators specced on it.  If the new algorithm 
converts an array to a string, it's obviously going to have to call on these.

 	My question is, would we be better off having the string conversion 
routine for arrays worry about the input/output record/field separators, 
rather than the IO object?  The downside I can see is that you couldn't have 
separate separators for different IO objects; you'd have to code specially if 
you wanted that functionality.  Is this too much of a downside, or is it a 
good way to go?

# Block types have .next, .last, .redo and .leave on them. These are also 
functions, and need to be specced as such.
# Block also has a .labels method.

 	Now in S32/Callable.pod

# fail and .handled (the former is in S29, but has no signature/summary).

 	Now in S32/Exceptions.pod.  But note the role/class Failure double 
declaration.  This is not allowed by the spec, but according to how I read the 
spec for Failure, that's how it has to be.  Obviously I need someone to 
explain how Failure should *really* be implemented :).

# .match, .subst and .trans from S05.

 	Now in S32/Str.pod.  But I wasn't sure what subst() returns.

# Match objects: .from, .to, .chars, .orig and .text.
# Match state objects: .pos.

 	Now added to S32/Regex.pod

 	The rest I'll leave for another time.


---------------------------------------------------------------------
| Name: Tim Nelson                 | Because the Creator is,        |
| E-mail: wayland@wayland.id.au    | I am                           |
---------------------------------------------------------------------

----BEGIN GEEK CODE BLOCK----
Version 3.12
GCS d+++ s+: a- C++$ U+++$ P+++$ L+++ E- W+ N+ w--- V- 
PE(+) Y+>++ PGP->+++ R(+) !tv b++ DI++++ D G+ e++>++++ h! y-
-----END GEEK CODE BLOCK-----


Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About