Re: Renaming grep

2005-11-19 Thread Dan Kogai

On Nov 19, 2005, at 13:08 , Chip Salzenberg wrote:


On Sat, Nov 19, 2005 at 05:46:51AM +0200, Ilmari Vacklin wrote:


I don't much like it - it looks like a mistyped 'shift'.
Is 'filter' too long?



I usually avoid P6L discussions, but:

GNU Make has "filter" and "filter-out", and I've always found the
polarity hard to remember.

I like grep.



I like grep, too.

FYI google gave me 6,650,000 "grep"s and 4,390,000 "sift"s.
IMHO grep is popular enough.
Well, google gave me some 158,000,000 "filter"s but that's rather too  
common and ambiguous.  Note filter does not always sift (i.e. perl - 
ple '$_="$.:$_"').


Dan the (grepp|sift|filter)ed Man



Bugs Manifesto Released!

2006-03-31 Thread Dan Kogai

[April 1st, 2006, 00:00 GMT+9]

Larry Wall and Audrey Tang jointly announced that Parrot, Pugs, and  
all language-related projects be dysintegrated to Bugs.  Bugs have  
ruled this planet for half a billion years and they shall do so for  
for years to come.  Beats heck out of avians, mammals, reptiles or gems.


Their Manifesto is now available at

  http://blog.livedoor.jp/dankogai/mov/lamdaorz.mov

Stay tuned!

Dan the Deranged, Infested, and Undefined, Reporting Live from Triassic


slurp, quine and context sensitivity

2006-04-08 Thread Dan Kogai

Folks,

This is a poetic quine (or quine-maker) in perl5.

  open myself, $0 and print ;

The same thing in perl6 would be:

  my $self = open $*PROGRAM_NAME; for =$self { say }

or

  my $self = open $*PROGRAM_NAME; say for =$self;

or

  my $self = slurp $*PROGRAM_NAME; print $self;

or even

  $*PROGRAM_NAME.slurp.map:{ print };

The last example must not be

  $*PROGRAM_NAME.slurp.print;

You can check it out by running the code below;

  ##
  $*PROGRAM_NAME.slurp.print
  ##

Will print:

  ##$*PROGRAM_NAME.slurp.print##

This is because print() (and say()) expects list context and slurp()  
passes an array of chomped strings.  When it comes to autoboxing, the  
context-sensitivity of builtins may bite you like this.


With that understood, I would welcome if we have a version of slurp()  
which unconditionally returns a scalar.  Say swallow()?  Of course it  
is as easy to implement as the following;


  sub swallow($file){ my $content = slurp $file; return $content };

But like say(), I would love to have something like that as a builtin.

Or am I getting too much ruby recently?

Dan the Perl6 Addict


Re: slurp, quine and context sensitivity

2006-04-08 Thread Dan Kogai

On Apr 08, 2006, at 18:45 , Damian Conway wrote:

Dan Kogai wrote:


With that understood, I would welcome if we have a version of slurp 
()  which unconditionally returns a scalar.




That'd be:

~slurp $file;

:-)



Very clever.  But still not good enough when it comes to autoboxing.

  { ~slurp }($*PROGRAM_NAME).print

and even

  (~slurp $*PROGRAM_NAME).print

works as expected but since "~slurp $file" is really ~(slurp $file),

  $*PROGRAM_NAME.~slurp.print

does not.  The problem of ~stringify, ?boolify, and +numify is that  
they are infix operators so it goes the opposite direction.


Oh, while I was testing all these on pugs, I came across this.

  ##
  say $*PROGRAM_NAME.slurp.elems;
  ##

This says 1 but

  ##
  my @lines = $*PROGRAM_NAME.slurp; say @lines.elems;
  ##

says 3.  This I am confused.

Dan the Perl6 Golfer on the Bunker



Re: slurp, quine and context sensitivity

2006-04-08 Thread Dan Kogai

On Apr 08, 2006, at 19:34 , Dan Kogai wrote:
does not.  The problem of ~stringify, ?boolify, and +numify is that  
they are infix operators so it goes the opposite direction.




s/infix/prefix/

Sorry.

Dan the Perl6 Golfer on the Bunker



How do you use a built-in class as a base class?

2006-04-08 Thread Dan Kogai

Folks,

With Perl6, we have singleton methods as

  $me.meta.add_method(me => sub{ ... });

But is there a way to, say, add methods within lexical scope?
Take URI on Perl 5.  URI behaves both as an object

my $uri = URI->new("http://dev.perl.org/perl6/";);
print $uri->path; # "/perl6/"

But it also behaves as an ordinary string.

print $uri; # "http://dev.perl.org/perl6/";

In Perl5, this is done by overloading q("").  If you want anything  
like this, you needed overloading.  But in Perl6, I assume you'd go like


class URI is Str {
   method path(){
   # 
   }
}

So you don't have to resort to overloading.  Now the questions are:

1.  How are you going to initialize?

my URI $uri .= .new("http://dev.perl.org/perl6/";);

  or

my $uri = URI.new("http://dev.perl.org/perl6/";);

  or

my URI $uri = "http://dev.perl.org/perl6/";;

  ?

2.  How do the method access its internal string.  Via $?SELF ?

Or should I use roles instead of classes in this kind of case?  What  
I want is make something like a "smart builtin classes" within Perl 6  
semantics.  You don't want to go like $uri.meta.add_method('path'  
=> ...), right?



I know how to do that in Perl 5 (possible but difficult).  I know how  
to do that in Javascript (eazy but Str.prototype.yourmeth = function() 
{...} makes ALL STRINGS smart).  What's the recommended way in Perl 6?


Dan the Object Disoriented




placeholder vs. lexical variables

2006-04-11 Thread Dan Kogai

Folks,

I found this when I was playing w/ pugs.

pugs> { $^x }.(42)
42
pugs> { my $z; $^x }.(42)
*** Undeclared variable: "$^x"
at  line 1, column 10-14

So far as I see s06, there's nothing wrong w/ the statement above.  I  
just want to make sure this is not a perl6 feature.


I found this when I tried

  { my %n; { %n{ $^n } ||= ($^n <= 2 ?? 1 !!  &?BLOCK($^n-1) +  &? 
BLOCK($^n-2)) }.($^n) }.(42)


This fails on pugs while

  -> $n { my %n; { %n{ $^n } ||= ($^n <= 2 ?? 1 !!  &?BLOCK($^n-1)  
+  &?BLOCK($^n-2)) }.($n) }.(42)


beautifully returns 267914296.

Dan the Yet Another Pugs Addict



The exact value of infinity [Was: Re: sprintf and snake envy]

2006-07-04 Thread Dan Kogai

On Jul 05, 2006, at 01:25 , Larry Wall wrote:

What made me laugh is that Pugs knows the exact value of infinity:

pugs> my $a = {"$^lang has $^c.as('%03d') quote types."}(:c 
(Inf),:lang)
"Perl has  
1797693134862315907729305190789024733617976978942306572734300811577326 
7580550096313270847732240753602112011387987139335765878976881441662249 
2847430639474124377767893424865485276302219601246094119453082952085005 
7688381506823424628814739131105408272371633505106845862982399472459384 
79716304835356329624224137216 quote types."


Larry, you almost wrecked my MacBook Pro with the coffee I was  
sipping :)


I think I found the reason why Pugs knows the exact value of  
infinity.  That's GHC that tells pugs the exact value thereof.


This is Infinity according to Pugs.

./src/Pugs/AST/Internals.hs

doCast (VStr "Inf") = return $ 1/0


And this is what GHC thinks what Infinity is.


Prelude> 2^1023 == 1/0
False
Prelude> 2^1024 == 1/0
True


Dan the Pugs Walker



Re: ICU and Parrot

2002-05-30 Thread Dan Kogai

It's a good timing to make my first post to this mailing list.

On Thursday, May 30, 2002, at 09:04 PM, Bryan C. Warnock wrote:
> On Tue, 2002-05-28 at 17:42, George Rhoten wrote:
>
>> It is true that parts of ICU uses C++. Some parts of ICU are written 
>> in C++
>> with a C wrapper. Some other parts are written in C with a C++ 
>> wrapper. It
>> depends on the API being used.  Most of the functionality in the common
>> library is written in C, and most of our i18n library uses C++. You 
>> can see
>> some of the C/C++ dependencies here
>> http://oss.software.ibm.com/icu/userguide/design.html under API
>> dependencies.
>>
>> The vast majority of people that we encounter do have a C++ compiler, 
>> and
>
> What exactly does that mean?  When I first read this, I thought, "Well,
> duh!  If C++ is a requirement, then anyone wanting to interact with ICU
> will have a C++ compiler.  If they didn't have one, they wouldn't use
> it."
>
> Or do you mean that ICU simply hasn't been approached (often) to provide
> a C-only implementation?

Encode, the standard encoding engine for Perl 5.8 does not use ICU 
directly though it uses UCM.  Chances are I'll port Encode to Perl6.  
Whether I'll use ICU or not I am not sure.

Dan the Encode Maintainer




Re: ICU and Parrot

2002-05-30 Thread Dan Kogai

On Friday, May 31, 2002, at 06:06 AM, George Rhoten wrote:
> Hopefully you take the implicit information in the UCM files and put 
> that
> into encode implementation too.  For instance, in gb18030 there are 
> whole
> ranges of Unicode mappings that aren't in the UCM file, but they are in 
> the
> implementation of the gb18030 converter (and the XML form of the UCM
> file).  If the encode API works with gb18030 properly, that's great :-) 
> I'm
> sure that the people in China appreciate that.

As a matter of fact GB18030 is ALREADY supported via Encode::HanExtra by 
Autrijus Tang.  The only reason GB18030 was not included in Encode main 
is sheer size of the map.

I have deliberately kept Parrot and Perl6 out of my mind until Perl 5.8 
is a reality.  Now that 5.8-RC1 is just 24 hours away, I should get 
myself ready for Parrot and Perl6

Dan the Encode Maintainer




Re: ICU and Parrot

2002-05-31 Thread Dan Kogai

On Saturday, June 1, 2002, at 12:34 AM, Autrijus Tang wrote:
> On Fri, May 31, 2002 at 06:18:55AM +0900, Dan Kogai wrote:
>> As a matter of fact GB18030 is ALREADY supported via Encode::HanExtra 
>> by
>> Autrijus Tang.  The only reason GB18030 was not included in Encode main
>> is sheer size of the map.
>
> Yes, partly because it was not implemented algorithmically. :)
>
> I was browsing http://www-124.ibm.com/cvs/icu/charset/data/ucm/ and 
> toying
> with uconv, and wondered:
>
> 1) Does Encode have (or intend to have) them all covered?

No,  Unless they appear in www.unicode.org.  Though some of them are 
actually adopted.  Useful it may be I found raw ICM too Big and too 
Blue :)

> 2) If not, would a Encode::ICU be wise?

I'm not so sure.  But if I were the one to implement Encode::ICU, it 
will not be just a compiled collection of UCM files but a wrapper to all 
library functions that ICU has to offer.  I, for one, am too lazy for 
that.

> 3) A number of encodings are in HanExtra but not their ucm repository,
>namedly big5plus, big5ext and cccii. Is is wise to feed back to them
>under the name of e.g. perl-big5plus.ucm?

You should in time and I should, too, because I have expanded UCM a 
little so that you can define combined characters commonly seen in 
Mac*.  But I don't see any reason to be in hurry for the time being.

If any of you are a member of team ICU you may redirect this dialogue to 
your team so we can work together in future (after 5.8.0, that is).

Dan the Encode Maintainer




Re: perl6 operator precedence table

2002-10-12 Thread Dan Kogai

On Friday, Oct 11, 2002, at 23:21 Asia/Tokyo, Aaron Crane wrote:
> Vaguely heretical, I know, but I'd be inclined to do something like 
> this:
>
>   Perl 5 Proposed Perl 6
>   $x && $y   $x & $y
>   $x || $y   $x | $y
>
>   $x & $ybitand($x, $y)
>   $x | $ybitor($x, $y)

Objection, your honor.

perl5 ($x & $y) might be uncommon enough to justify this.  But how 
about &= vs. &&=, |= vs. ||= ?  Those are both used very often so by 
saving one symbol we lose consistency.

Dan |= MAN | FATHER | PERL5POTER | tobe->user->(PERL6)




Unicode operators [Was: Re: UTF-8 and Unicode FAQ, demos]

2002-11-05 Thread Dan Kogai
On Tuesday, Nov 5, 2002, at 04:58 Asia/Tokyo, Larry Wall wrote:
(B> It would be really funny to use cent $B!q(B, pound $B!r(B, or yen (J\(B as a sigil, 
(B> though...
(B
(BWhich 'yen' ?  I believe you already know \ (U+005c -> REVERSE SOLIDUS) 
(Bis prited as a yen figure in most of Japanese platforms so yen is 
(Balready everywhere :)
(B
(BOne big problem for introducing Unicode operator is that there are too 
(Bmany symbols that look the same but with different code points (Unicode 
(Bconsortium has so done to make its capitalist members happy so their 
(Bproprietary symbols in their legacy codes are preserved).  Therefore I 
(Bobject to the idea of making Unicode operator "standard", however 
(Badvanced that particular operator would be.  At the same time, things 
(Blike "use (more) operators => taste;" is very welcome.  i.e.
(B
(B	use operators => "smooth";
(B	$hashref = $B!j(B%hash  # U+2640 FEMALE SIGN
(B	$value   = $hashref$B!i(B{key}; # U+2642 MALE SIGN
(B
(B> People who believe slippery slope arguments should never go skiing.
(B
(BI don't want perl6 to be as "tough" as skiing, though.
(B
(B> On the other hand, even the useful slippery slopes have "beginner"
(B> slopes.  I think one advantage of using Unicode for advanced features
(B> is that it *looks* scary.  So in general we should try to keep the
(B> basic features in ASCII, and only use Unicode where there be dragons.
(B
(BHeck.  We already have source filters in perl5 and I'm pretty much sure 
(Bsomeone will just invent yet another 'use operators => "ascii";' kind 
(Bof stuff in perl6.  I thought "use English" was already enough.
(B
(B> It will certainly be possible to write APL in Perl, but if you do,
(B> you'll get what you deserve.
(B
(BAnd even APL has j.  Methinks the question is now whether you make APL 
(Bout of j or j out of APL.
(B
$BCF(B the $B!i(B with Too Many Symbols to Deal With
(B
(BP.S.  Here is even wilder idea than Unicode operators.  Why don't we 
(Bjust make perl6 XML-based and allow inline objects to be operators?
(B
(B
(B$two = $one  $one;
(B
(B
(B. Yuck!


Re: Time::Local

2005-08-18 Thread Dan Kogai

On Aug 17, 2005, at 00:29 , Larry Wall wrote:

which gives us these possibilities.
大務big / (perform) duty


Perl6 to people here.


太夢fat, big / dream


Perl6 for the rest of us.


対夢oppose, against, pair / dream


Pugs?


待夢wait / dream


Perl6 to Oreilly ?


滞夢stop, stagnate / dream


Perl6 to kansai.pm :)

All sounds pretty perl6 to me.

Oh, be careful of this one.


台無stand, platform / not, none, cease to be


Usually this one reads 'Dai-Nashi' (kun-yomi), meaning "to blow from  
grounds up".


Dan the Man from a Place with Too Many Puns and Funs



FYI: Lambda Calculus on Perl 6

2005-09-04 Thread Dan Kogai

Folks,

I recently needed to write a series of codes on lambda calculus in  
perl.  As MJD has shown Perl 5 can handle lambda calculus but I am  
beginning to get tired of whole bunch of 'my $x = shift' needed.



  our $ZERO =
  sub { my $f = shift;
  sub { my $x = shift; $x }};
  our $SUCC =
  sub { my $n = shift;
sub { my $f = shift;
  sub { my $x = shift;
$f->($n->($f)($x)) }}};
  our $ADD =
  sub{ my $m = shift;
   sub { my $n = shift;
 sub { my $f = shift;
   sub { my $x = shift;
 $m->($f)($n->($f)($x)) ;
  our $MULT =
  sub { my $m = shift;
sub { my $n = shift;
  sub { my $f = shift;
$m->($n->($f)) }}};
  our $POW =
  sub { my $m = shift;
sub { my $n = shift;
  $n->($m) }};

And I found that these can be made much, much simpler and more  
intuitive with Perl 6, even more so than scheme!


  our $ZERO = sub($f){ sub($x){ $x }};
  our $SUCC = sub($n){ sub($f){ sub($x){ $f.($n.($f)($x)) }}};
  our $ADD  = sub($m){ sub($n){ sub($f){ sub($x){ $m.($f)($n.($f) 
($x)) ;

  our $MULT = sub($m){ sub($n){ sub($f){ $m.($n.($f)) }}};
  our $POW  = sub($m){ sub($n){ $n.($m) }};

You can even make it simpler by removing dots but I leave it that way  
because it looks more like the original notation that way (i.e.   
zero := λf.λx.x).


Runs perfectly fine on Pugs 6.2.8.  Add the code below and see it for  
yourself.


  my $one = $SUCC.($ZERO);
  my $two = $SUCC.($one);
  my $four= $ADD.($two)($two);
  my $eight   = $MULT.($two)($four);
  my $sixteen = $POW.($four)($two);
  for($one, $two, $four, $eight, $sixteen) -> $n {
  $n.(sub($i){ 1 + $i})(0).say
  };

Maybe we can use this for advocacy.

Dan the Perl 6 User Now

P.S.  I am surprised to find Pugs does not include this kind of  
sample scripts.

 

Avoid the Yen Sign [Was: Re: new sigil]

2005-10-23 Thread Dan Kogai

Maeda-san and the list members,

Thank you for raising this issue and sorry for not raising this myself.

On Oct 22, 2005, at 19:42 , Kaoru Maeda wrote:

If we find a lot of yen sign as zip-operator in the standard library,
we have a big question: "Give up either Perl6 or Windows.  Which do  
we abandon?"
And I suppose the answer would be "We have a lot of substitutes to  
Perl6:

Ruby, Perl5, etc."

In Japan, yes is synonym to backslash.  We wish to retain this legacy.
Zip-operator is far less important than regex-escape, string- 
escape, and

take-reference operator.


To make the matter worse, there are not just one "yen sign" in  
Unicode. Take a look at this.


¥ U+00A5 YEN SIGN
¥ U+FFE5 FULLWIDTH YEN SIGN

Tough they look and groks the same to human, computers handle them  
differently.  This happened when Unicode Consortium decided to make  
BMP round-trippable against legacy encodings.  They were distinct in  
JIS standards, so happened Unicode.


Maybe we should avoid other symbols like this for sigils -- those not  
in ASCII that have 'fullwidth' variations.  q($) and q(\) are okay  
(or too late) because they are already in ASCII.  q(¥) should be  
avoided because you can hardly tell the difference from q(¥) in the  
display.


But this will also outlaw the cent sign.  I have attached a list of  
those affected.  As you see, most are with ASCII equivalents but some  
are not.


Dan the Man with Too Many Signs to Deal With

% grep FULLWIDTH /usr/local/lib/perl5/5.8.7/unicore/Name.pl | perl - 
Mencoding=utf8 -aple '$_=chr(hex($F[0]))."\t".$_'

!   FF01FULLWIDTH EXCLAMATION MARK
"   FF02FULLWIDTH QUOTATION MARK
#   FF03FULLWIDTH NUMBER SIGN
$   FF04FULLWIDTH DOLLAR SIGN
%   FF05FULLWIDTH PERCENT SIGN
&   FF06FULLWIDTH AMPERSAND
'   FF07FULLWIDTH APOSTROPHE
(   FF08FULLWIDTH LEFT PARENTHESIS
)   FF09FULLWIDTH RIGHT PARENTHESIS
*   FF0AFULLWIDTH ASTERISK
+   FF0BFULLWIDTH PLUS SIGN
,   FF0CFULLWIDTH COMMA
-   FF0DFULLWIDTH HYPHEN-MINUS
.   FF0EFULLWIDTH FULL STOP
/   FF0FFULLWIDTH SOLIDUS
0   FF10FULLWIDTH DIGIT ZERO
1   FF11FULLWIDTH DIGIT ONE
2   FF12FULLWIDTH DIGIT TWO
3   FF13FULLWIDTH DIGIT THREE
4   FF14FULLWIDTH DIGIT FOUR
5   FF15FULLWIDTH DIGIT FIVE
6   FF16FULLWIDTH DIGIT SIX
7   FF17FULLWIDTH DIGIT SEVEN
8   FF18FULLWIDTH DIGIT EIGHT
9   FF19FULLWIDTH DIGIT NINE
:   FF1AFULLWIDTH COLON
;   FF1BFULLWIDTH SEMICOLON
<   FF1CFULLWIDTH LESS-THAN SIGN
=   FF1DFULLWIDTH EQUALS SIGN
>   FF1EFULLWIDTH GREATER-THAN SIGN
?   FF1FFULLWIDTH QUESTION MARK
@   FF20FULLWIDTH COMMERCIAL AT
A   FF21FULLWIDTH LATIN CAPITAL LETTER A
B   FF22FULLWIDTH LATIN CAPITAL LETTER B
C   FF23FULLWIDTH LATIN CAPITAL LETTER C
D   FF24FULLWIDTH LATIN CAPITAL LETTER D
E   FF25FULLWIDTH LATIN CAPITAL LETTER E
F   FF26FULLWIDTH LATIN CAPITAL LETTER F
G   FF27FULLWIDTH LATIN CAPITAL LETTER G
H   FF28FULLWIDTH LATIN CAPITAL LETTER H
I   FF29FULLWIDTH LATIN CAPITAL LETTER I
J   FF2AFULLWIDTH LATIN CAPITAL LETTER J
K   FF2BFULLWIDTH LATIN CAPITAL LETTER K
L   FF2CFULLWIDTH LATIN CAPITAL LETTER L
M   FF2DFULLWIDTH LATIN CAPITAL LETTER M
N   FF2EFULLWIDTH LATIN CAPITAL LETTER N
O   FF2FFULLWIDTH LATIN CAPITAL LETTER O
P   FF30FULLWIDTH LATIN CAPITAL LETTER P
Q   FF31FULLWIDTH LATIN CAPITAL LETTER Q
R   FF32FULLWIDTH LATIN CAPITAL LETTER R
S   FF33FULLWIDTH LATIN CAPITAL LETTER S
T   FF34FULLWIDTH LATIN CAPITAL LETTER T
U   FF35FULLWIDTH LATIN CAPITAL LETTER U
V   FF36FULLWIDTH LATIN CAPITAL LETTER V
W   FF37FULLWIDTH LATIN CAPITAL LETTER W
X   FF38FULLWIDTH LATIN CAPITAL LETTER X
Y   FF39FULLWIDTH LATIN CAPITAL LETTER Y
Z   FF3AFULLWIDTH LATIN CAPITAL LETTER Z
[   FF3BFULLWIDTH LEFT SQUARE BRACKET
\   FF3CFULLWIDTH REVERSE SOLIDUS
]   FF3DFULLWIDTH RIGHT SQUARE BRACKET
^   FF3EFULLWIDTH CIRCUMFLEX ACCENT
_   FF3FFULLWIDTH LOW LINE
`   FF40FULLWIDTH GRAVE ACCENT
a   FF41FULLWIDTH LATIN SMALL LETTER A
b   FF42FULLWIDTH LATIN SMALL LETTER B
c   FF43FULLWIDTH LATIN SMALL LETTER C
d  

Re: Perl 6 fears

2005-10-24 Thread Dan Kogai

Here is my part.

On Oct 24, 2005, at 07:20 , Juerd wrote:

I've created pugs/docs/quickref/fears, a list of Perl 6 fears.

Feel free to add your own, or fears you heard about!
[snip]
: FEAR: Perl 6 has too many operators!


FEAR: Perl 6 has so many operators that it runs out of Unicode  
character repertoire :)


# Time to learn (Hanzi|Kanji) for that?


: FEAR: I will never be able to type Unicode ops!


FEAR: I will need to hack an input method just to type those ops!


: FEAR: Unicode ops cannot be read by me!


FEAR: Unicode ops cannot be read by the compiler!


: FEAR: Perl 6 will be too much like Haskell!


Perl 6 will be too much like Ruby!

# IMHO it already is and I love it!


: FEAR: Perl 6 is made for big programs, not for oneliners and short
: scripts!


FEAR: Unicode ops of Perl 6 ought to make short scripts easier but  
how the heck can I type in those on shell?


Dan the Perl 6 User -- Whatever that Means



Re: base-4 literals

2010-11-16 Thread Dan Kogai
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Nov 17 2010, at 05:16 , Larry Wall wrote:
> On Tue, Nov 16, 2010 at 12:11:01PM -0800, Darren Duncan wrote:
> : Carl Mäsak wrote:
> : >Darren (>):
> : >>While I haven't seen any prior art on this, I'm thinking that it would be
> : >>nice for a sense of completeness or parity to have an 0a syntax specific 
> to
> : >>base-4 that complements the 4 that we have now for bases 2,8,16,10.
> : >
> : >You're joking, right?
> : 
> : No, its a serious idea, just not so conventional. -- Darren Duncan
> 
> The lack of base 4 numbers in Real Life seems to me to justify the
> convention.  Do you have a use case?

Real Life on Earth is base-4 coded :-p

FYI we already have

:4<12301230>

which is ALREADY supported.
If you want to use ACGT instead, just apply grammar or tr...
hey, do we have tr/// equivalent already?

Dan the Base-4 Coded Creature
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (Darwin)

iEYEARECAAYFAkzi+RoACgkQErJia/WXtBvXUACfeqzcxEpkEL5SrPgcwAwkYK+t
LhwAni5fE4lADkIkp/wHgXWZm65FYJco
=1QQG
-END PGP SIGNATURE-


c99 hexadecimal floating point support?

2015-12-30 Thread Dan Kogai
Forks,

Happy holidays with v6.c

https://perl6advent.wordpress.com/2015/12/25/christmas-is-here/

I am blushed to find my name is in the list, both in English and 漢字.

I am only beginning to unwrap the present and have fun.

Anyway, is there a plan to support hexadecimal floating point support?

% perl6 -e 'say 0x1.921fb54442d18p+1'
===SORRY!=== Error while compiling -e
Malformed postfix call
at -e:1
--> say 0x1.⏏921fb54442d18p+1

FYI Perl5 has started supporting since 5.22.

% perl -E 'say 0x1.921fb54442d18p+1’
3.14159265358982

Since pack() is still experimental and unpack() lacks floating point number 
support, it would be even more useful for perl6...

Dan the Perl6 Newbie


signature.asc
Description: Message signed with OpenPGP using GPGMail


$epsilon = 1.0e-6 feels too big for Rat()

2015-12-31 Thread Dan Kogai
Folks,

I am only beginning to unwrap the christmas present but I immediately fell in 
love with the perl6 arithmetic system.  Not is it rich but it is also fast.

% perl6
> 340282366920938463463374607431768211297.is-prime
True
> 340282366920938460843936948965011886881.is-prime
False

And type conversions between numbers are smooth and seamless.  I couldn’t help 
loving Rat … except for one thing.

% perl6
> pi
3.14159265358979
> pi.Rat
3.141593
> pi.Rat.nude
(355 113)

That’s so 5th century!

https://en.wikipedia.org/wiki/Zu_Chongzhi

And of course,

> pi.Rat == pi
False

https://perl6advent.wordpress.com/2009/12/14/day-14-going-to-the-rats/

However, we can be more precise by simply giving 0 to $epsilon.

> pi.Rat(0).nude
(245850922 78256779)
> pi.Rat(0) == pi
True
> e.Rat(0) == e
True
> log(2).Rat(0) == log(2)
True

This I feel more natural.

http://doc.perl6.org/routine/Rat#role_Real says the default $epsilon is 1e-6.


Why so large?

Why not zero?

Dan the Perl6 Newbie




signature.asc
Description: Message signed with OpenPGP using GPGMail