Re: [Haskell] Re: [Haskell-cafe] SimonPJ and Tim Harris explain STM - video
Hi, I got this working on Mac OS X. I had to download media player 9: http://www.microsoft.com/windows/windowsmedia/software/Macintosh/osx/default.aspx This contains the WMV3 codec. Cheers, Chris. On Fri, 24 Nov 2006, James William Pye wrote: > On Fri, Nov 24, 2006 at 10:26:38AM +0100, Tomasz Zielonka wrote: > > Does anybody know how to watch this on Linux? I would prefer to simply > > download the movie file and use MPlayer on that, but I failed. > > > > . or on Mac OS X (haven't tried yet) > > The latest mplayer works for me on FreeBSD/amd64 (1.0rc1, iirc). > ___ > Haskell mailing list > Haskell@haskell.org > http://www.haskell.org/mailman/listinfo/haskell > ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] refactoring, catamorphism, termination of programs
Hi Jahannes, > I don't want to make a big research project out of this, > rather I think of quickly putting together a prototype > that proves the concept. > > I figure it could be distilled from some existing refactoring suite, > or be manufactured from existing building blocks. Well, HaRe -- the Haskell refactorer -- offers a full API for building transformations and refactorings for the full Haskell 98 standard. http://www.cs.kent.ac.uk/projects/refactor-fp/hare.html A new release will hopefully be released very soon (even in the next few days) which will be compatible with ghc-6.6.1. The releases on our refactoring page currently only work with GHC-6.4.*. > E.g. Language.Haskell.* from the ghc libs, > and perhaps "Typing Haskell in Haskell"? > http://citeseer.ist.psu.edu/424440.html HaRe also uses the GHC API and type checker, with parts of the HaRe API extended to retrieve type information from GHC on abritrary expressions and functions. Kind regards, Chris. ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] What makes a functional language functional?
Hi, Is lazy evaluation necessary for a functional language to remain functional? The reason I ask is that because it violates beta-reduction, and also referential transparency (I think). In haskell, we can transform: g x + f x into: f x + g x as both f and g do not change the parameter x. If g always evaluates to a normal form (in both a lazy and a strict world) g x = x but f is defined thus: f x = (\y -> if x /= 0 then x else y/x) And we apply f to 0 (1/0) then f becomes _|_ therefore: 0 + _|_ /= _|_ + 0 Or, does this just become: _|_ = _|_ ? Or, am I missing something totally obvious? Regards, Chris. ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] What makes a functional language functional?
Hi Jeremy, Thanks for this very informative answer! This has certainly helped to clear up a number of points. Thanks, Chris. > Many arguments have been had about what it means for a language to be > "functional", so that's probably not a productive line of discussion. > (ICFP carefully doesn't stipulate language choice for the programming > contest, for example.) > > Both eager and lazy evaluation can be "pure", providing referential > transparency: all that matters of an expression is its value, and a > subexpression may be substituted with a different one having the same > value without changing the meaning of the surrounding context. This > fails on languages supporting side effects. > > Lazy evaluation is necessary, however, in order to treat a function > definition as a (universally applicable) equation. In Haskell, I can > define > > > three x = 3 > > and then infer, for any expression x, that the equation > >three x = 3 > > holds. With eager evaluation, that's no longer the case: if x denotes > a non-terminating or error-raising computation, then > >three x /= 3 > > The equation then requires a side condition: > >three x = 3, for well-defined x > > which complicates equational reasoning, but it doesn't break > referential transparency. > > Jeremy > > > On 9 Aug 2007, at 10:30, C.M.Brown wrote: > > > Hi, > > > > Is lazy evaluation necessary for a functional language to remain > > functional? > > > > The reason I ask is that because it violates beta-reduction, and also > > referential transparency (I think). In haskell, we can transform: > > > > g x + f x > > > > into: > > > > f x + g x > > > > as both f and g do not change the parameter x. > > > > If g always evaluates to a normal form (in both a lazy and a strict > > world) > > > > g x = x > > > > but f is defined thus: > > > > f x = (\y -> if x /= 0 then x else y/x) > > > > And we apply f to 0 (1/0) then f becomes _|_ > > > > therefore: > > > > 0 + _|_ /= _|_ + 0 > > > > Or, does this just become: > > > > _|_ = _|_ ? > > > > Or, am I missing something totally obvious? > > > > Regards, > > Chris. > > > > > > ___ > > Haskell mailing list > > Haskell@haskell.org > > http://www.haskell.org/mailman/listinfo/haskell > > > > [EMAIL PROTECTED] >Oxford University Computing Laboratory,TEL: +44 1865 283508 >Wolfson Building, Parks Road, FAX: +44 1865 283531 >Oxford OX1 3QD, UK. >URL: http://www.comlab.ox.ac.uk/oucl/people/jeremy.gibbons.html > > > ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell