Re: A small problem.

2000-08-22 Thread John Atwood

for de-suguring of list comprehensions, see section 3.11 of the Haskell
Report: http://www.haskell.org/definition/

or, in this case:
 area (Polygon vertices) = 0.5 * sum (concatMap ok l)
   where
ok (Vertex x1 y1, Vertex x2 y2) = [(x1-x2)*(y1+y2)]
ok _ = []
l = zip vertices (tail vertices ++ [head vertices])


John


Friedrich Dominicus wrote:
> 
> Ronny Wichers Schreur <[EMAIL PROTECTED]> writes:
> 
> > area :: Shape -> Float
> > area (Polygon vertices)
> >  =   0.5 * sum [(x1-x2)*(y1+y2)
> >| (Vertex x1 y1, Vertex x2 y2)
> ><- zip vertices (tail vertices ++ [head vertices])]
> thanks, John Huges pointed me to a simular solution, JFYI list
> comprehension is not covered in that chapter nor are anonymous
> functions. I found that list comprehension is syntactic sugar for a
> map, just by sheeting (to page 90 in SOE). But I do not understand how
> to replace one by the other here. I'll have to wait and try till I
> found what list comprehansion stands for.
> 
> Thanks anyway
> Friedrich
> 
> -- 
> for e-mail reply remove all after .com 
> 
> 





Re: openfile :: String -> String

2000-04-26 Thread John Atwood

Wy not load the list as program? E.g.
list1 =
 ["word1"
 ,"word2"
 ,"word3"
 ]
list2 = words "word1 word2 word3"
list3 = words
 "\
 \ word1\
 \ word2\
 \ word3\
 \"



John Atwood
-
Lars Lundgren wrote:
> 
> On Wed, 26 Apr 2000, Hamilton Richards wrote:
> 
> > The Gofer prelude had a function
> > 
> > openfile :: String -> String
> > 
> > which mapped file path names to strings containing the named files' contents.
> > 
> > The Hugs98 Prelude doesn't seem to have anything like that function.
> > Instead, it has things like
> > 
> > readFile :: String -> IO String
> > 
> > Why would I want openfile instead of readFile? The problem in which the
> > need for openfile arose is this:
> > 
> >I want to load a binary search tree and a list with
> >words read from a file, and then perform, interactively,
> >several tests comparing the cost of searching the
> >tree with that of searching the list. In addition to
> >performing the tests interactively, I want to separate
> >the cost of searching the list and the tree from the
> >cost of constructing them.
> > 
> > In order for the list and the tree to be used in several successive
> > command-line evaluations without being reconstructed each time, they must
> > be named globally. This is no problem with openfile, but readFile forces
> > their names to be local to an IO command.
> > 
> 
> Why is this a problem? After all, the names ARE dependent on IO.
> 
> > Can anyone suggest a solution?
> >
> 
> I do not understand the problem.
> 
> Is it something like this you want?
> 
> parseTree :: String -> Tree
> parseList :: String -> List
> 
> buildTree:: IO Tree
> buildTree = do f <- readFile "thetree"
>return (parseTree f)
> 
> buildList:: IO List
> buildList = do f <- readFile "thelist"
>return (parseList f)  
> 
> test :: IO()
> test = do tree <- buildTree
>   list <- buildList
>   dowhateverYouwant_interactive_or_not tree list
> 
> 
> dowhateverYouwant_interactive_or_not :: Tree -> List -> IO()
> 
>  
> /Lars L
> 
> 
> 
> 
> 





Re: Lambada

2000-03-09 Thread John Atwood

Try Erik Meijer's home page:
   http://www.cs.ruu.nl/~erik/

John Atwood
-
Chris Angus wrote:
> 
> Does anyone know where I can get some
> information on Lambada.
> 
> I tried 
> 
> 
>http://windows.st-lab.cs.uu.nl/Lambada/
> 
> but got a 403 (not authorised to view page)
> 
> Cheers
> 
> Chris
> 
> 




Re: haskell arrays....

2000-02-11 Thread John Atwood

Siva,

Are you aware of chapter 6 of the Haskell 98 Library Report:
   http://haskell.org/onlinelibrary/array.html

There are a couple of examples of using arrays there which might be
enough to get you started. 


Also, if you're looking at FFT, FPs, and paralelism, you'll probably be
interested in "The fastest Fourier Transform in the West":  
  http://www.fftw.org/


John Atwood
---
Simon Peyton-Jones wrote:
> 
> Does anyone know of a good source of tutorial material on 
> Haskell arrays?  Anyone feel like typing something into
> the Haskell Wiki?
> | -Original Message-
> | From: Siva P Pochiraju [mailto:[EMAIL PROTECTED]]
> | Sent: 11 February 2000 01:29
> | To: Simon Peyton-Jones
> | Subject: haskell arrays
> | 
> | Hello sir,
> | 
> | I am a Master's student at Univeristy of Texas @ San Antonio.
> | I got your e-mail from microisoft research page.
> | 
> | currently i am working on, Glasgow haskell, gransim .
> | what i am looking for is some example to use arrays in haskell.
> | i want to see the performance of parallel fft when lists are 
> | replaced by
> | arrays .
> | 
> | i am trying hard but could not find the help (in books as 
> | well as in user
> | guides)
> | 
> | could you tell me where can i find such help.
> | 
> | thanks in advance
> | siva



Re: unable to find the error

2000-01-31 Thread John Atwood

Krishnendu Kar wrote:
> 
> This is a multi-part message in MIME format.
> 
> --=_NextPart_000_0005_01BF6C14.8D98A480
> Content-Type: text/plain;
>   charset="iso-8859-1"
> Content-Transfer-Encoding: quoted-printable
> 
> Hi!
> Please tell me whats wrong in this-
> 
> module  EvenSumOddProd where
> 
> evenSumOddProd :: [Int] -> (Int, Int)
>  evenSumOddProd(s:t) =3D (s + (even(a)), t * (odd(b)))
>   where (a,b) =3D evenSumOddProd t
> 
> output wanted is
> evenSumOddProd[1,2,3,4,5] returns (6, 15)
> 
> thanks in advance=20
> Annie
> 
> 
> --=_NextPart_000_0005_01BF6C14.8D98A480
> Content-Type: text/html;
>   charset="iso-8859-1"
> Content-Transfer-Encoding: quoted-printable
> 
> 
> 
>  http-equiv=3DContent-Type>
> 
> 
> 
> 
> Hi!
> Please tell me whats wrong in this-
>  
> module  EvenSumOddProd where
>  
>     =
> evenSumOddProd ::=20
> [Int] -> (Int, Int) evenSumOddProd(s:t) =3D (s + (even(a)), =
> t *=20
> (odd(b)))  where (a,b) =3D evenSumOddProd t
>  
> output wanted is
> evenSumOddProd[1,2,3,4,5] returns (6, =
> 15)

 
Have a look thru the Prelude; especially lines 189, 1149, and 1292.

Hope this helps,


John Atwood



>  
> thanks in advance 
> Annie
>  
> 
> --=_NextPart_000_0005_01BF6C14.8D98A480--
> 
> 
> 




Re: haskell IDE

1999-12-15 Thread John Atwood

Daan Leijen wrote:
> VisualHaskell is indeed under development. However, due to
> licensing issues the release date is "somewhere next year".
> 
> VisualHaskell will provide you with integrated interpreter,
> editor, project and compiler support; but it will be closer
> to VisualC++ than for example VisualBasic (ie. not very visual :-)
> (erik meijer 

I'm aware of John Reekie's version [1] and I see another [2], but I
suspect you refer to yet another "Visual Haskell"; can you elaborate? Is
it "Visual" in the language sense, or the IDE sense?

John Atwood
-
[1]  http://ptolemy.eecs.berkeley.edu/~johnr/papers/visual.html
 http://ptolemy.eecs.berkeley.edu/~johnr/papers/thesis.html (Chap. 4)
[2]  (well, I can't find the link, site's in Australia, I believe).




Re: How to use an state reader monad?

1999-11-30 Thread John Atwood

Works for me under ghc4.05; for hugs you need to:

You have it right, except you need to 
  1) explicitly type test,
  test:: Reader [Char] Char
  2) have Reader derive Show
  3) use the -98 option at startup


John Atwood
-
=?iso-8859-1?Q?Jos=E9_Romildo_Malaquias?= wrote:
> 
> I came across an implementation of reader monads by Andy Gill,
> <http://www.cse.ogi.edu/~andy/monads/MonadReader.htm>
> inspired by the paper "Functional Programming with Overloading
> and Higher-Order Polymorphism" (by Mark P Jones)
> <http://www.cse.ogi.edu/~mpj/pubs/springschool.html>:
> 
> -- 
> -- Reader monads.
> -- A class of monads for describing computations that
> -- consult some fixed environment.
> 
> class (Monad m) => ReaderMonad s m where
> -- asks for the (internal non-mutable) state
> ask :: m s
> 
> -- this allows you to provide a projection function
> asks :: (ReaderMonad s m)  => (s -> a) -> m a
> asks f = do s <- ask
> return (f s)
> 
> -- a parametarized reader monad
> newtype Reader w a = Reader { runReader :: w -> a }
> 
> instance Functor (Reader w) where
> fmap f m = Reader ( \w -> f (runReader m w) )
> 
> instance Monad (Reader w) where
> return v = Reader ( \w -> v )
> 
> p >>= f  = Reader ( \w -> runReader (f (runReader p w)) w )
> 
> fail str = Reader ( \w -> error str )
> 
> instance ReaderMonad w (Reader w) where
> ask = Reader ( \w -> w )
> -- -
> 
> Would someone write a simple Haskell program that ilustrates how
> one can use this reader monad?
> 
> I have tried the following, but it fails at compilation:
> 
> ---
> test = do env <- ask
>   if env == "choose a"
>   then return 'a'
>   else return 'b'
> 
> do_test = runReader test "choose a"
> 
> main = putStr (show do_test)
> ---
> 
> Thanks.
> 
> Romildo
> --
> Prof. José Romildo Malaquias <[EMAIL PROTECTED]>
> Departamento de Computação
> Universidade Federal de Ouro Preto
> Brasil
> 
> 




Re: ANNOUNCE: Haskell HTML Combinators

1999-11-16 Thread John Atwood

> What about a grand unified EMACS HTML/XML library?
> (Erik's, Malcolm's, Andy's, Colin's, and Sven's HTML/XML library)
> Ooops, forgot Peter, but he would spoil the acronym...   :-)

Schema p?





Haskell wiki needs reset?

1999-11-15 Thread John Atwood

Looks like the Haskell wiki has been zeroed. Could someone reset it?


John Atwood



Re: [haskell] Good theory texts?

1999-11-03 Thread John Atwood

Some suggestions:

   Abelson, Sussman and Sussman, _The Structure and Interpretation of
 Computer Programs_.   http://www-mitpress.mit.edu/sicp/
 especially chapter 3 about the costs and benefits of introducing
 assignment.
   
   Barendregt's _The Lambda Caclulus_
   or his paper: _The impact of the lambda calculus_, at:
http://www.cs.kun.nl/~henk/papers.html

   have you found The Haskell Bookshelf?
  http://www.haskell.org/bookshelf/


John Atwood
---

Christopher Jeris wrote:
> 
> 
> Hi Haskellers,
> 
> Could you suggest a good place for me to learn enough real CS theory to
> understand the issues and reasons behind the design and implementation of
> Haskell ?  My background is in pure mathematics (not logic -- differential
> geometry and stuff) and most of the books I have consulted are either too
> advanced for me from a CS theory viewpoint, or spend an awfully long time
> explaining stuff like set theory to computer scientists without as much
> math background.  I'm having trouble finding a happy medium.
> 
> thanks,
> Chris Jeris (sometime MIT math grad student, maybe again later)




Re: Dates in Haskell

1999-10-19 Thread John Atwood

Were I doing a Calendar module, I'd consult:
  Calendrical Calculations 
  By Nachum Dershowitz and Edward M. Reingold. 
  Cambridge University Press, 1997.

http://emr.cs.uiuc.edu/~reingold/calendars.shtml

There's some lisp source somewhere on the site.


John Atwood



Re: XSLT: Is assignment really necessary for performance?

1999-10-13 Thread John Atwood


XML documents are trees, and processing them is graph traversal. This
paper might be of some theoretical help:

Functional Programming with Graphs, Martin Erwig. 2nd ACM SIGPLAN Int.
Conf. on Functional Programming (ICFP'97), 52-65, 1997 (also in: ACM
SIGPLAN Notices, Vol. 32,No. 8, Aug 1997, pp. 52-65)
  online at:

http://www.informatik.fernuni-hagen.de/import/pi4/erwig/papers/abstracts.html

The last line of the abstract reads:

 For example, depth-first-search expressed by a fold over a functional
 graph has the same complexity as the corresponding imperative algorithm. 


John Atwood
--
S. Alexander Jacobson wrote:
> 
> In this article
> (http://www.mulberrytech.com/xsl/xsl-list/archive/msg07336.html), Clark
> Evans claims that XSLT is too slow or too memory intensive because it is a
> functional language.
> 
> He suggests adding Hashtables to XSLt to improve performance.  Is this
> really necessary? Is the problem functional programming or something
> broken in the design of the XSLt lanuage?
> 
> Backround: XSLt is a functional programming language designed to process
> XML documents.  It is still in the draft stage.  When it becomes a
> standard, XSLt functional programming is likely to be one of the dominant
> forms of Internet programming.  We are already using XSLt here to manage
> generating the site.
> 
> -Alex-
> 
> 
> ___
> S. Alexander Jacobson Shop.Com
> 1-212-697-0184 voice  The Easiest Way To Shop
> 
> 
> 







Re: function algebra

1999-10-06 Thread John Atwood

Can't you trivially satisfy Eq:

instance Eq b => Eq (a -> b) where
f == g  = False


John Atwood
-
William Lee Irwin III wrote:
> 
> In analysis, functions are usually taken to be an algebra over the
> reals (or C). This tempted me to define the following:
> 
> module FunctionAlgebra where
> instance Num b => Num (a -> b) where
>   f + g   = \x -> (f x) + (g x)
>   f - g   = \x -> (f x) - (g x)
>   f * g   = \x -> (f x) * (g x)
>   negate f= negate . f
>   abs f   = abs . f
>   signum f= signum . f
>   fromInt i   = \x -> fromInt i
>   fromInteger i   = \x -> fromInteger i
> 
> Of course, this fails as class Num requires its members to be of
> observable type (instances of Eq, Show). I think it's something
> interesting which Haskell's type system is apparently capable of
> expressing, even though the prelude types conflict with it. Maybe
> someone will find it interesting enough to include support for it
> in the Prelude. Of course, Open Source means if you think something
> should happen, you can make it happen for yourself. =)
> 
> Bill
> P.S.: How does one contribute binaries to the binary distribution
>   archive?
> 
> 







Re: advice wanted on GUI design patterns

1999-10-01 Thread John Atwood

> On Mon 27 Sep, Havoc Pennington wrote:
> > I'm trying to learn Haskell, and I'm wondering what experiences people
> > have with designing programs with graphical user interfaces.
> 
Adrian Hey wrote:
> I have none, but I think you need concurrency to do it properly,

Cardelli & Pike claim otherwise with their Squeak language. It compiles
concurrent UI channels into sequential C. The Paper's on Cardelli's home
page.  In Haskell, one might use something like the R (resource) monad
from the latest edition of the "Gentle Introduction...".



John Atwood






Re: Announce: frantk

1999-09-30 Thread John Atwood

Meurig Sage wrote:
> Announce: FranTk

I can't get franTk running under Win95. It fails with:
Error while importing DLL "c:\t\TclHaskellSrc\TclPrim.dll"  
This file does exist. I also tried putting a copy of the dll on the
windows PATH, in C:\windows.

I'm using the May99 version of hugs98, and tcl/tk 8.2.

Any help would be appreciated.

Also, one note on getting it running under SunOS 5.6: making TclPrim.so
required uppercasing tclPrim.c



John Atwood






Re: Cryptarithm solver - Haskell vs. C++

1999-09-23 Thread John Atwood

Manuel M. T. Chakravarty wrote:
> 
> Bart Demoen <[EMAIL PROTECTED]> wrote,
> > Speed is not the only issue - feasability is an issue as well.
> 
> I completely agree, but the original poster did not complain
> about a slight discrepancy in speed, he was puzzled about an
> unacceptable large gap of several orders of magnitude.
> Speed is not the only issue, but it definitely is _an_ issue.

Another issue is correctness. What can be said about the correctness
of the C++ program? the haskell program? What theorems do we get
for free with this haskell program?


John Atwood





Re: Haskore: looking for a function that reads a midi file...

1998-02-03 Thread John Atwood

Natividad Vilela Carral wrote:
> 
> I'm looking for some function that reads a midi file and to generates
> Haskore.
> I'm trying to take a midi file and to generate a Mathematic function.


I don't know of such a function, but a quick glance at the
Haskore src, particularly MidiFile.lhs suggests to me that
many of the pieces are there.

> How many clocks are there in a quarter note?

Look in the file HaskToMidi.lhs



John Atwood