RE: [Haskell-cafe] Haskell overview

2004-03-12 Thread Michael Wang
There are mirror sites.
Here is the one I know

http://citeseer.ist.psu.edu/

Regards,

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of
[EMAIL PROTECTED]
Sent: Friday, March 12, 2004 6:19 AM
To: [EMAIL PROTECTED]
Subject: AW: [Haskell-cafe] Haskell overview


and for some days now

Markus Schnell

> -Ursprüngliche Nachricht-
> Von: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Im Auftrag von Gour
> Gesendet: Freitag, 12. März 2004 14:53
> An: [EMAIL PROTECTED]
> Betreff: Re: [Haskell-cafe] Haskell overview
>
>
> MR K P SCHUPKE ([EMAIL PROTECTED]) wrote:
>
> > Is it just me or is "citeseer.nj.nec.com" down?
>
> Same here :-(
>
> Sincerely,
> Gour
>
> --
> Gour
> [EMAIL PROTECTED]
> Registered Linux User #278493
>
> ___
> Haskell-Cafe mailing list
> [EMAIL PROTECTED]
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe

___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: Polymorphic lists...

2004-03-12 Thread MR K P SCHUPKE

Just running through the implementation of some of the functions I mentioned,
with the newtyped tuple version. Thought the run-time indexed code looked neat
so I thought i'd post it:

First the definition:

newtype RNil = RNil ()
newtype RCons attribute relation = RCons (attribute,relation)

class Relation relation
instance Relation (RNil ())
instance Relation relation => Relation (RCons attribute relation)

emptyRM :: RNil
emptyRM = RNil ()


now the code:

class Relation r => IndexRM' r a where
   indexRM' :: r -> Int -> Maybe a
instance IndexRM' RNil a where
   indexRM' _ _ = Nothing
instance IndexRM' r a => IndexRM' (RCons a r) a where
   indexRM' (RCons (a,_)) 0 = Just a
   indexRM' (RCons (_,r)) n = indexRM' r (n-1)
instance IndexRM' r a => IndexRM' (RCons b r) a where
   indexRM' (RCons (_,_)) 0 = Nothing
   indexRM' (RCons (_,r)) n = indexRM' r (n-1)


This finds the Nth value where 'n' is a normal integer. The last block
repeats twice because one matches the case where the return type is the same, and
the other is for then the return type and indexed value differ. This is why the
return type is Maybe. With the compile time natural number lookup, the program
will fail to compile if the types differ, but with the runtime lookup the type
and the success cannot be determined (hence no functional dependancy) and returning
Maybe makes the most sense.

Regards,
Keean.
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe


AW: [Haskell-cafe] Haskell overview

2004-03-12 Thread Markus . Schnell
and for some days now

Markus Schnell

> -Ursprüngliche Nachricht-
> Von: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] Im Auftrag von Gour
> Gesendet: Freitag, 12. März 2004 14:53
> An: [EMAIL PROTECTED]
> Betreff: Re: [Haskell-cafe] Haskell overview
> 
> 
> MR K P SCHUPKE ([EMAIL PROTECTED]) wrote:
> 
> > Is it just me or is "citeseer.nj.nec.com" down?
> 
> Same here :-(
> 
> Sincerely,
> Gour
> 
> -- 
> Gour
> [EMAIL PROTECTED]
> Registered Linux User #278493
> 
> ___
> Haskell-Cafe mailing list
> [EMAIL PROTECTED]
> http://www.haskell.org/mailman/listinfo/haskell-cafe
> 
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] citeseer

2004-03-12 Thread Malcolm Wallace
MR K P SCHUPKE <[EMAIL PROTECTED]> writes:

> Is it just me or is "citeseer.nj.nec.com" down?

Citeseer appears to have moved to
http://citeseer.ist.psu.edu/

___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Haskell overview

2004-03-12 Thread Gour
MR K P SCHUPKE ([EMAIL PROTECTED]) wrote:

> Is it just me or is "citeseer.nj.nec.com" down?

Same here :-(

Sincerely,
Gour

-- 
Gour
[EMAIL PROTECTED]
Registered Linux User #278493

___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Haskell overview

2004-03-12 Thread MR K P SCHUPKE
Is it just me or is "citeseer.nj.nec.com" down?

Keean.
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Haskell overview

2004-03-12 Thread ATWOOD,JOHN (HP-Corvallis,ex1)

> A colleague with a mathematics and Lisp background is wanting to learn
> more about Haskell. The books he's looked at concentrate more on building
> up from the basics and getting the syntax right, etc., whereas really he's
> looking more of a top-down view that makes Haskell's features and behavior
> clear and relates them to category theory, etc. Would anyone be able to
> suggest some good references?
>
>-- Mark


For lispers, I like to point out this sentence of section 6.4 of the Haskell
98 Report:
Haskell provides several kinds of numbers; the numeric types and
the operations upon them have been heavily influenced by Common 
Lisp and Scheme.

For mathematicians, I'd recommend the first 5 pages of:
Calculating Functional Programs, Jeremy Gibbons, 2002
http://web.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/index.html#
calculatingThen I'd mention the Acid Rain Theorem, Fusion Theorem,
Wadler's _Theorems for Free!_.  When I'd show some exemplary fp programs:

Bridging the Algorithm Gap: A Linear-Time Functional Program for Paragraph
Formatting.  Oege de Moor and Jeremy Gibbons, 1999
http://web.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/index.html#
para

Financial Contracts: An Adventure in Financial Engineering, 2000 Simon
Peyton Jones, Jean-Marc Eber, and Julian Seward
http://www.lexifi.com/resources.html#paper

Functional Specification of JPEG Decompression, and an Implementation for
Free, Jeroen Fokker, 1995 http://citeseer.nj.nec.com/72092.html

Modeling Web Interactions, Paul Graunke, Robert Bruce Findler, Shriram
Krishnamurthi, Matthias Felleisen, 2003
http://citeseer.nj.nec.com/graunke03modeling.html

Haskell Server Pages Functional Programming and the Battle for the Middle
Tier, Erik Meijer, Dannyy van Velzen, 2000
http://citeseer.nj.nec.com/318262.html

Writing High-Performance Server Applications in Haskell, Case Study: A
Haskell Web Server, Simon Marlow, 2000
http://www.haskell.org/~simonmar/bib.html (about the 4th one down)

And then, the more introductory material:

Why Functional Programming Matters, John Hughes
http://www.cs.chalmers.se/~rjmh/Papers/whyfp.html
and here's a summary of the paper:
  http://www.cs.auckland.ac.nz/~j-hamer/360/why-fp-matters.html

Section 3.1.3 of SICP:
http://mitpress.mit.edu/sicp/

Why no one uses functional languages, Philip Wadler, 1998
http://citeseer.nj.nec.com/wadler98why.html

here's an old, but still relevant summary of some issues keeping fp from
taking over the world:
http://www.cs.colorado.edu/~zorn/cs5535/Fall-1997/haskell-summary.html

Some general links:
http://haskell.readscheme.org/
http://www.haskell.org


Hope this isn't too overwhelming, but it was an opportunity for me to gather
my thoughts.

Enjoy,

John Atwood
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Passing types as arguments

2004-03-12 Thread MR K P SCHUPKE
You can pattern match on types - as I have been having much
fun with recently ... you use multi-parameter type classes
(with optional functional dependancies) to match types.

Regards,
Keean.
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Passing types as arguments

2004-03-12 Thread Johan Jeuring
We pass values as proxies for types extensively in the "Scrap your
boilerplate" scheme.  The paper is on my home page.   The 'typeOf'
function is a good example.
Passing types as arguments to functions is the main idea behind generic 
programming, intentional programming, polytypic programming, etc. 
Information can be found in papers of Simon Peyton Jones, Ralf Hinze, 
Andres Loh, myself, Patrik Jansson, and many other people. I have links 
to many of these people on my homepage:

http://www.cs.uu.nl/~johanj/

-- Johan

| -Original Message-
| From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
| [EMAIL PROTECTED]
| Sent: 12 March 2004 03:50
| To: [EMAIL PROTECTED]
| Subject: [Haskell-cafe] Passing types as arguments
|
| G'day everyone.
|
| Some time ago a suggestion came up about passing types as arguments
| to functions:
|
| http://www.haskell.org/pipermail/haskell/2003-June/012184.html
|
| As a matter of curiosity, the topic has come up again on the wiki:
|
|
http://haskell.org/hawiki/StudyGroup/GraphExamplesInHaskell/WhySum3
|
| For this example, we don't just want to pass types, we also want to
| pattern match on them.
|
| I'm curious if anyone else has put any thought to this idea.  Is it
just
| a syntax issue, or are there bad interactions with other parts of the
| type system?
|
| Cheers,
| Andrew Bromage
| ___
| Haskell-Cafe mailing list
| [EMAIL PROTECTED]
| http://www.haskell.org/mailman/listinfo/haskell-cafe
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe


RE: [Haskell-cafe] Passing types as arguments

2004-03-12 Thread Simon Peyton-Jones
We pass values as proxies for types extensively in the "Scrap your
boilerplate" scheme.  The paper is on my home page.   The 'typeOf'
function is a good example.  

Part II coming up shortly.

Simon

| -Original Message-
| From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
| [EMAIL PROTECTED]
| Sent: 12 March 2004 03:50
| To: [EMAIL PROTECTED]
| Subject: [Haskell-cafe] Passing types as arguments
| 
| G'day everyone.
| 
| Some time ago a suggestion came up about passing types as arguments
| to functions:
| 
| http://www.haskell.org/pipermail/haskell/2003-June/012184.html
| 
| As a matter of curiosity, the topic has come up again on the wiki:
| 
|
http://haskell.org/hawiki/StudyGroup/GraphExamplesInHaskell/WhySum3
| 
| For this example, we don't just want to pass types, we also want to
| pattern match on them.
| 
| I'm curious if anyone else has put any thought to this idea.  Is it
just
| a syntax issue, or are there bad interactions with other parts of the
| type system?
| 
| Cheers,
| Andrew Bromage
| ___
| Haskell-Cafe mailing list
| [EMAIL PROTECTED]
| http://www.haskell.org/mailman/listinfo/haskell-cafe
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe