Just as E, etc. get a tremendous benefit by saying they are languages
with no ambient authority, built instead around object capabilities.
The more I study capability languages the more I see the parallels to
Haskell's hair shirt.  Frankly, for the modern world I think the
object capability side is at least as interesting to explore as purity
(and the two are not inconsistent at all).

Shriram

On Wed, Jul 6, 2011 at 9:55 PM, Matthias Felleisen <[email protected]> wrote:
>
> On Jul 6, 2011, at 9:16 PM, Eli Barzilay wrote:
>
>> How would it be useful?  (Not a rhetoric question.)
>
> I can think of two and a half ways:
>
> 1. Haskell has had a tremendous benefit in putting a stake in the ground with 
> "totally pure". It's decision mechanism. It appears to be elegant. It is an 
> easily remembered design slogan. Try to come up with a slogan like that for 
> Racket. (I still think we should say Racket is a programming language 
> programming language.)
>
> I suspect one would similar benefits from a call-by-value parenthesized 
> macroized possibly typed Racket. I am sure monadic programming would be much 
> easier with macros. I am also sure people will prefer call-by-value over 
> lazy, especially if you bother with type classes or something like that.
>
> In short, it is an unexplored point in the design space and you never know 
> what you find.
>
> 2. As you point correctly, it is a non-trivial task to ensure total purity: 
> require is the first problem that comes to mind but I wouldn't be surprised 
> if other reflection mechanism don't end up being in the way. It looks easy as 
> in "require Racket, export only pure features" but for all we know, we may 
> discover that we need to support other ways of restricting languages.
>
> 3. It would also be another playing field in exploring interoperability.
>
> ;; ---
>
> The first exercise would be to define what purity is.
>  I/O anyone? Is the world model from big-bang acceptable? How about files? 
> CPS-IO? Monads?
>
> The second exercise would be to implement this core language.
>  How many of the macros do you want to allow in, can you afford to allow in?
>
> The third one is probably to design a type system.
>
> The fourth one calls for macros.
>
> Someone go for it -- Matthias
>
>
>
>
>
>
>
> _________________________________________________
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/users
>

_________________________________________________
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/users

Reply via email to