POV-Ray : Newsgroups : povray.off-topic : Why is Haskell interesting? : Re: Why is Haskell interesting? Server Time
4 Sep 2024 15:17:29 EDT (-0400)
  Re: Why is Haskell interesting?  
From: Darren New
Date: 27 Feb 2010 12:55:19
Message: <4b895c87$1@news.povray.org>
Orchid XP v8 wrote:
>   if x == hex "0xABC" then...

That doesn't count.

>   if x == $(hex "0xABC") then ...

That's getting closer.

> Alternatively you can use the new "quasi-quoting" feature:
>   if x == [$hex| 0xABC] then ...

That's fairly close, yes.

> However, there is no way in Haskell to make it so that some arbitrary 
> new string can be used as a literal, anywhere in the program. 

LISP works it by (IIRC) passing each token to the "read macros" and seeing 
if any of them modify it, so it has to be distinguishable somehow. FORTH 
works it by literally letting you read the input stream, as well as calling 
a specific function when an unparsable word is encountered. So in FORTH, a 
literal works mostly like your quasi-quoting scheme, except there's no magic 
characters at the front or end to say "hey, this is quoted." You'd just write
    blah blah hex 0xABC blah blah
and the "hex" function would run at compile time and read input off stdin to 
determine what comes next. So the function to create string literals is the 
double-quotes character. Integers are parsed by having nobody know wtf they 
are, so you invoke the thing that says "what's this token" and the integer 
parser comes back and says "Hey, I know how to compile that!"

Even Erlang has a mechanism to pss the parse tree thru a number of routines 
each of which takes a parse tree and returns a new parse tree. It isn't 
quite as flexible as LISP or FORTH, but it lets you add parse-time features 
pretty easily, like your splice more than anything

> You have 
> to tell the compiler what function to use to parse this stuff, one way 
> or another.

Yeah, but you shouldn't be putting it inline in the stream. You should be 
able to say "anything with < on the front and > at the back should parse as 
an XML tag."

-- 
Darren New, San Diego CA, USA (PST)
   The question in today's corporate environment is not
   so much "what color is your parachute?" as it is
   "what color is your nose?"


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.