[luca_ciciriello@hotmail.com: Re: [Haskell-beginners] reflection]
Brent Yorgey
byorgey at seas.upenn.edu
Tue Jan 5 12:41:12 EST 2010
Well, there are a few things I could suggest for you to look at:
* the hint package [1] for runtime Haskell interpretation
* look at xmonad [2] for an example of a program which recompiles and reloads itself on the fly
* the haskell-src-exts library [3] for a full-featured Haskell parser/pretty printer
There is no way to actually inspect and modify the structure of a
running Haskell program in memory; it is simply not stored in a format
which would let you do this (it is highly optimized and compiled).
However, using the above tools I imagine you should be able to
accomplish what you want.
-Brent
[1] http://hackage.haskell.org/package/hint
[2] http://xmonad.org/
[3] http://hackage.haskell.org/package/haskell-src-exts
----- Forwarded message from Luca Ciciriello <luca_ciciriello at hotmail.com> -----
From: Luca Ciciriello <luca_ciciriello at hotmail.com>
Date: Tue, 5 Jan 2010 18:20:13 +0100
To: Brent Yorgey <byorgey at seas.upenn.edu>
Subject: Re: [Haskell-beginners] reflection
My need is to have a program that at run-time should be able to read itself and eventually modify itself. I've used this reflection in Common LISP.
I don't know if this is possible in Haskell using GHC or GHCi (perhaps there are more chances inside the eval-loop of GHCi).
Thanks anyway for the answer.
Luca.
On Jan 5, 2010, at 5:58 PM, Brent Yorgey wrote:
> On Tue, Jan 05, 2010 at 09:43:21AM +0100, Luca Ciciriello wrote:
>> Hi.
>> Someone has performed or know how to use reflection in Haskell?
>> I've found something on google, but that stuff seems to me very confusing.
>
> It depends what you mean by "reflection". Can you give an example of
> the sorts of things you'd like to do? Generally speaking, Haskell
> doesn't support "reflection" in the same way as many other languages
> do, but there are usually idiomatic ways to accomplish the same things
> you would use reflection for.
>
> -Brent
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
----- End forwarded message -----
More information about the Beginners
mailing list