1. Suggestion for Euphoria 2.3, 2.2a, 2.2.1, whatever
- Posted by "Darth Maul, aka Matt" <Uglyfish87 at HOTMAIL.COM> Sep 07, 2000
- 473 views
- Last edited Sep 08, 2000
I noticed several things that C has that Euphoria doesn't. Among these are structs and switch statements. It should be easy to implement a struct like: struct thisStruct do integer a, b sequence st end struct And as for the switch statements: switch a do case 1 do puts(1,"a is 1\n") elsif 2 do puts(1,"a is 2\n") else puts(1,"a is some other value\n") end case end switch And one feature that even secondbestlanguageintheworld Java doesn't have! Using plain old math operators on sequences. Maybe you could say, 'st = "hi"' instead of the current 'equals(st,"hi")' or 'compare(st,"hi")=0'. This would be much clearer. - Thx for listening
2. Re: Suggestion for Euphoria 2.3, 2.2a, 2.2.1, whatever
- Posted by irv <irv at ELLIJAY.COM> Sep 08, 2000
- 460 views
On Thu, 07 Sep 2000, you wrote: > I noticed several things that C has that Euphoria doesn't. Among these are > structs and switch statements. It should be easy to implement a struct like: > > struct thisStruct do > integer a, b > sequence st > end struct Since a structure is very likely to be constant during its' existence, why not declare it in much the same way: structure x = integer a,b, sequence st end structure > And as for the switch statements: > > switch a do > case 1 do > puts(1,"a is 1\n") > elsif 2 do > puts(1,"a is 2\n") > else > puts(1,"a is some other value\n") > end case > end switch Useful, but ugly. Why not simplify it somewhat: case a = 1 then puts(1,"a is 1"), = 2 then puts(1,"a is 2"), < 5 then puts(1,"a is between 3 and 5") else puts(1,"ERROR") end case -- Regards, Irv
3. Re: Suggestion for Euphoria 2.3, 2.2a, 2.2.1, whatever
- Posted by gebrandariz <gebrandariz at YAHOO.COM> Sep 20, 2000
- 442 views
----- Original Message ----- From: irv <irv at ELLIJAY.COM> To: <EUPHORIA at LISTSERV.MUOHIO.EDU> Sent: Friday, September 08, 2000 10:26 AM Subject: Re: Suggestion for Euphoria 2.3, 2.2a, 2.2.1, whatever > On Thu, 07 Sep 2000, you wrote: > > > > switch a do > > case 1 do > > puts(1,"a is 1\n") > > elsif 2 do > > puts(1,"a is 2\n") > > else > > puts(1,"a is some other value\n") > > end case > > end switch > > Useful, but ugly. > Why not simplify it somewhat: > case a > = 1 then puts(1,"a is 1"), > = 2 then puts(1,"a is 2"), > < 5 then puts(1,"a is between 3 and 5") > else > puts(1,"ERROR") > end case > > -- > Regards, > Irv Or perhaps case a 1: puts(1,"a is 1"), 2: puts(1,"a is 2"), <5: puts(1,"a is between 3 and 5") otherwise: puts(1,"ERROR") end case which I find more readable. The "otherwise" statement makes it easy to distinguish case blocks from if blocks at a glance, even if internally they'd work the same way. The same philosophy evidently inspired the "unless" statement (can't remember where), actually an "if not" in disguise, as in unless a = b puts(1,"Alert! A no longer equals B") end unless While I'm at it, my own wish list might include something equivalent to the COBOL level 88 definitions, which let you assign a name to a value, series of values, or range. In Eu this could be accomplished thru the CONSTANT statement, as in constant CHILD = {0..12}, TEEN = {13..19}, OLDGEEZER {20..999} constant PRIME = {1,2,3,5,7,11} constant USER_SAYS_OK = {"y", "yes", "ok", "si", "oui"} This would also help towards shorter, more readable code. As it would obviously apply sequence processing, subscripting might be allowed, also for recursive redefinition: constant BABY = CHILD[0..3], USER_SOUNDS_FRENCH = USER_SAYS_OK[5] Thus you'd write case users_age baby: puts(1,"Please call Mom.\n") child: puts(1,"Sorry, kid. This is a boring adult math puzzle.\n") teen: puts(1,"Welcome to Goreville!\n") oldgeezer: puts(1,"Go get a life!\n") otherwise: puts(1,"Hi, Methuselah!\n") end case and nicer-looking ifs, which could get very complicated in just a few words: if teen_user and after_midnight and long_program_run and weekday puts(1,"Go get some sleep.") end if Wish I could... Gerardo _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com