Chris,
I'm not sure what exactly your question is as you are mixing up several
concepts. However, you start with:
In haskell, we can transform:
g x + f x
into:
f x + g x
Here you assume that the function + is commutative. Although this is
probably true for all numeric types in all
AsaiOchanomizu University, Japan
Manuel Chakravarty The University of New South Wales, Australia
Olaf Chitil (chair) University of Kent, UK
Martin ErwigOregon State University, Oregon, USA
Marc Feeley Université de Montréal, Canada
Martin Gasbichler
-ready version 25 January 2008
Programme Committee
Peter AchtenRadboud University Nijmegen, The Netherlands
Kenichi AsaiOchanomizu University, Japan
Manuel Chakravarty The University of New South Wales, Australia
Olaf Chitil (chair) University of Kent, UK
I am very please to see on the Wiki also a list of removal candidates
and that these include n+k patterns and ~ patterns.
I'd like to add one pattern to this list of removal candiates: k
patterns, that is, numeric literals.
Why do I want to get rid of these three patterns? Because all
Duncan Coutts wrote:
I think it's a perfectly reasonable mental model for people to believe
that:
data Char = 'a' | 'b' | 'c' | ...
data Int = ... -2 | -1 | 0 | 1 | 2 | ...
I don't see why we should remove one and not the other. Students will
ask why the can pattern match on strings,
Simon Marlow wrote:
I can explain why it happens,
though. The compiler has lifted out the error case into a top-level
binding:
x = error Error in array index
So cost-centre stacks are not produced for the original program written
by the user, but for the intermediate program after
Christian Maeder wrote:
Colin Runciman wrote:
buffer xs = foldl const xs xs
I don't find it this easy nor a good programming practise.
My interaction depends on the (subtle order of) evaluation of a pure and
total function?
I would not think so much about the operational evaluation
Andrew Pimlott wrote:
It is one thing to embrace lazy evaluation order, and another to embrace
lazy IO (implemented using unsafeInterleaveIO). As a relative newcomer
to Haskell, I got the impression that the interact style was always a
hack, discarded for good reason in favor of the IO monad.
I'm not sure I understand the objection raised by Jon; the 'implicit
declaration' of type variables in type signatures has never bothered
me, and in fact seems quite similar to how names for values don't have
to be declared beforehand but are brought into scope by the binding
(which I also have
to be built. Candidates should have a good working knowledge of
programming language semantics, in particular operational semantics for
functional languages. A PhD degree in Computer Science (or related) is
highly desirable.
Enquiries about the project should be addressed to Dr Olaf Chitil
. But would such an evaluator give the programmer control
about where exactly it would stop optimistic evaluation?
Olaf
--
OLAF CHITIL,
Computing Laboratory, University of Kent, Canterbury, Kent CT2 7NF, UK.
URL: http://www.cs.kent.ac.uk/people/staff/oc/
Tel: +44 (0)1227 824320; Fax: +44 (0)1227
you are not careful you may
certainly get something nearly random ;-)
I completely agree with Thomas Hallgren's message. I also view the IO
monad as a temporary solution and regret that research into better lazy
IO seems to have stoped.
Olaf
--
OLAF CHITIL,
Dept. of Computer Science
clearly defined and I'm not sure what the prefix `unsafe' really means.
However, I don't want to continously disagree with you.
unsafeGetContents would have been a better name.
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, The University of York, York YO10 5DD, UK.
URL: http
is fine for that.
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, The University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904 434756; Fax: +44 1904 432767
___
Haskell mailing list
[EMAIL PROTECTED]
http
evaluation.
That is fine and should work well with 'interact', otherwise there is
something wrong with optimistic evaluation. Certainly pure eager
evaluation is not a valid evaluation strategy for Haskell.
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, The University of York, York YO10 5DD, UK
, but it cannot be expected in
general.
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, The University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904 434756; Fax: +44 1904 432767
___
Haskell mailing list
[EMAIL PROTECTED]
http
complicated, but I do not see that it compromises the purity of the
language in anyway (whatever purity is ;-).
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, The University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904 434756; Fax: +44 1904 432767
if this was stated
explicitly in the program text. Haskell is a good language, pureness is good,
type classes are good, monads are good - but laziness is holding it back.
[end rant]
--
OLAF CHITIL,
Dept. of Computer Science, The University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk
a problem with using an explicitly
typed calculus in a compiler. GHC should probably use hash-consing. Any
type view tool based on final types (instead of principal typings like
mine) faces the same problem.
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, The University of York, York YO10 5DD
libraries and no ghc language extensions. Real soon we will release a
new version supporting more libraries, a few language extensions
(multiparameter classes, functional dependencies) and some other
improvements.
Ciao,
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, The University of York, York
Ross Paterson wrote:
On Fri, Mar 07, 2003 at 02:35:47PM +, Olaf Chitil wrote:
The simple reason why Hugs behaves so is that when searching a module it
*always* searches the current directory (* where the import was demanded
*) first. Only afterwards the paths set with the -P option
like a constant (no arguments before =) is
not allowed to be overloaded (have a class context), except when the
type of the variable is explicitly given.
Maybe it would be possible to generate a more informative type error
message in such cases?
Olaf
--
OLAF CHITIL,
Dept. of Computer Science
about sharing
and space usage. I believe even a call-by-name implementation or a full
laziness implementation would be fully Haskell 98 compliant. (I'm not
happy about that either).
Ciao,
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, The University of York, York YO10 5DD, UK.
URL: http
Easter,
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, The University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904 434756; Fax: +44 1904 432767
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org
that I don't advocate breaking these laws; but then I'm not a
fan of monads anyway...)
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, The University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904 434756; Fax: +44 1904 432767
be interested to learn for what purpose you want this kind of
information and also more precisely what you would like such a static
tool to do for you.
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, The University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904
definition of cpslarger is natural for your application,
it is a nice solution of the problem.
Ciao,
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, The University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904 434756; Fax: +44 1904 432767
if xk.
There is no guarantee that if x=k == False then x k == True.
So the sentence should end ..., and fails otherwise.
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, The University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904 434756; Fax: +44 1904 432767
. There is no safe way in Haskell to refer to the
builtin prelude...
Ciao,
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, The University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904 434756; Fax: +44 1904 432767
I faintly remember that there was once work on a Haskell specific
preprocessor. Why was the work abandoned?
cpp just annoyed me again. I wrote
(/*) = something
and cpp complained
Test.hs:4: unterminated comment
Ciao,
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, The University
inference phase of
nhc98, but I haven't yet had the time...
Ciao,
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, The University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904 434756; Fax: +44 1904 432767
by defining
maxBound = primUnicodeMaxBound
where primUnicodeMaxBound is imported from UnicodePrims.
--
OLAF CHITIL,
Dept. of Computer Science, University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904 434756; Fax: +44 1904 432767
replacing dictionaries by bottom dictionaries on a
Haskell mailing list or comp.lang.functional. Unfortunately I don't find
it anymore.
Ciao,
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904 434756; Fax: +44
' is not in
the scope of the `let'. Expressions are nested and allowing mutual
recursion here would make things really confusing.
Ciao,
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904 434756; Fax: +44 1904 432767
Chakravarty: A standard Foreign Function Interface for Haskell98
Basically finished (general part and C, not for Java). Solicits last
comments from the general community.
--
OLAF CHITIL,
Dept. of Computer Science, University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel
by `Prelude.'
| can't always be used to refer to entities in the Prelude.
--
OLAF CHITIL,
Dept. of Computer Science, University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904 434756; Fax: +44 1904 432767
___
Haskell mailing
? Unfortunately, as far as I see, the report does not
even explain what it means for an identifier to be ambiguous.
--
OLAF CHITIL,
Dept. of Computer Science, University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904 434756; Fax: +44 1904 432767
;-)
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904 434756; Fax: +44 1904 432767
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo
subexpression is
evaluated.
(an older version of Hood, which is distributed with nhc, also has an
animation facility)
At some time we also hope to provide such an animation viewer for our
Haskell tracer Hat. The trace already contains all the necessary
information.
Ciao,
Olaf
--
OLAF CHITIL,
Dept
) =
foldr2_both k (bz f n) (bz g n)
#-}
\end{code}
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904 434756; Fax: +44 1904 432767
___
Glasgow-haskell-users mailing
.
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904 434756; Fax: +44 1904 432767
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo
l,...?
Cheers,
Olaf
--
OLAF CHITIL,
Dept. of Computer Science, University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904 434756; Fax: +44 1904 432767
shed a light on this? Thanks.
-- Zhanyong Wan
--
OLAF CHITIL,
Dept. of Computer Science, University of York, York YO10 5DD, UK.
URL: http://www.cs.york.ac.uk/~olaf/
Tel: +44 1904 434756; Fax: +44 1904 432767
This is the third and final invitation and call for contributions to the
12th INTERNATIONAL WORKSHOP
on the
IMPLEMENTATION of FUNCTIONAL LANGUAGES
(IFL2000)
to be held
libraries should somehow be
more visible.
I didn't update haskell.org for a few month because I had to finish my
thesis, move to York and start a new project here. But I will update the
pages with all the stuff that accumulated in the meantime very soon.
Cheers,
Olaf
--
OLAF CHITIL,
Dept
This is the second invitation and call for contributions to the
12th INTERNATIONAL WORKSHOP
on the
IMPLEMENTATION of FUNCTIONAL LANGUAGES
(IFL2000)
This is the first invitation and call for contributions to the
12th INTERNATIONAL WORKSHOP
on the
IMPLEMENTATION of FUNCTIONAL LANGUAGES
(IFL2000)
PROTECTED]
URL: www-i2.informatik.rwth-aachen.de
--
OLAF CHITIL, Lehrstuhl fuer Informatik II, RWTH Aachen, 52056 Aachen, Germany
Tel: (+49/0)241/80-21212; Fax: (+49/0)241/-217
URL: http://www-i2.informatik.rwth-aachen.de/~chitil/
(range 1 to 100 factor 2) ...
Reuse the existing list functions:
array [1..10]
array [1,3..10]
array (takeWhile (=100) (iterate (*2) 1))
--
OLAF CHITIL, Lehrstuhl fuer Informatik II, RWTH Aachen, 52056 Aachen, Germany
Tel: (+49/0)241/80-21212; Fax: (+49/0)241
section
about second order types.
--
OLAF CHITIL, Lehrstuhl fuer Informatik II, RWTH Aachen, 52056 Aachen, Germany
Tel: (+49/0)241/80-21212; Fax: (+49/0)241/-217
URL: http://www-i2.informatik.rwth-aachen.de/~chitil/
gcc 2.7.2. If you have that under the name gcc-2.7.2 you
can ask ghc to call this version instead of gcc by writing:
ghc -pgmcgcc-2.7.2 -o Test Test.hs
--
OLAF CHITIL, Lehrstuhl fuer Informatik II, RWTH Aachen, 52056 Aachen, Germany
Tel: (+49/0)241/80-21212; Fax: (+49/0)24
naries.
We are running SunOS 5.5 Generic sun4m and use gcc version 2.8.1.
--
OLAF CHITIL, Lehrstuhl fuer Informatik II, RWTH Aachen, 52056 Aachen, Germany
Tel: (+49/0)241/80-21212; Fax: (+49/0)241/-217
URL: http://www-i2.informatik.rwth-aachen.de/~chitil/
is unfortunately not suitable
for lazy functional languages have a look at my paper `Common Subexpressions are
Uncommon in Lazy Functional Languages' at
http://www-i2.informatik.rwth-aachen.de/~chitil/PUBLICATIONS/comSubsAreUncom.html
Olaf
--
OLAF CHITIL, Lehrstuhl fuer Informatik II, RWTH Aachen, 52056
to admit that I don't like the names mzero and mplus either :-(
Olaf
--
OLAF CHITIL, Lehrstuhl fuer Informatik II, RWTH Aachen, 52056 Aachen, Germany
Tel: (+49/0)241/80-21212; Fax: (+49/0)241/-217
URL: http://www-i2.informatik.rwth-aachen.de/~chitil/
(under development)? Does anybody
have experiences with using one of these GUI libraries?
I'm sure we are not the only ones interested in this subject.
Thank you for any comments,
Olaf
--
OLAF CHITIL, Lehrstuhl fuer Informatik II, RWTH Aachen, 52056 Aachen, Germany
Tel: (+49/0)241/80
monomorphic.
Simon's example should become part of the report.
--
OLAF CHITIL, Lehrstuhl fuer Informatik II, RWTH Aachen, 52056 Aachen, Germany
Tel: (+49/0)241/80-21212; Fax: (+49/0)241/-217
URL: http://www-i2.informatik.rwth-aachen.de/~chitil/
the bottom of page
http://www-i2.informatik.rwth-aachen.de/~chitil/DiplArb/parser.html
Olaf
--
OLAF CHITIL, Lehrstuhl fuer Informatik II, RWTH Aachen, 52056 Aachen, Germany
Tel: (+49/0)241/80-21212; Fax: (+49/0)241/-217
URL: http://www-i2.informatik.rwth-aachen.de
ses FOmega as intermediate
language. I found a simple way to code the required form of subtyping in FOmega,
but it is not `nice'.
--
OLAF CHITIL, Lehrstuhl fuer Informatik II, RWTH Aachen, 52056 Aachen, Germany
Tel: (+49/0)241/80-21212; Fax: (+49/0)241/-217
URL: htt
of `anna' is completely different from the given `big.sum.out'
(with unmodified ghc-2.08). I obtain:
1279649
5. For `make runtests' the program `symalg' requires more heap on my sparc
station. It works with `-H70'.
Greetings,
Olaf
--
OLAF CHITIL, Lehrstuhl fuer Informatik II, RWTH Aachen
time0.02s ( 0.07s elapsed)
MUT time2.79s ( 2.99s elapsed)
GCtime2.13s ( 2.31s elapsed)
Total time4.94s ( 5.37s elapsed)
Olaf
--
OLAF CHITIL, Lehrstuhl fuer Informatik II, RWTH Aachen, 52056 Aachen, Germany
Tel: (+49/0)241/80-21212; Fax: (+49/0)241
le (I came across this problem
when compiling a simple program with GHC that had been developed with
Hugs) and the module IO should provide functions for controlling
echoing.
Olaf
--
OLAF CHITIL, Lehrstuhl fuer Informatik II, RWTH Aachen, 52056 Aachen,
Germany
Tel: (+49/0)241/80-
pages
http://www-i2.informatik.rwth-aachen.de/~chitil/PUBLICATIONS/extendGHC.html
(not to be confused with Will Partain's document of similar title)
Cheers,
Olaf
--
OLAF CHITIL, Lehrstuhl fuer Informatik II, RWTH Aachen, 52056 Aachen,
Germany
Tel: (+49/0)241/80-21212; Fax: (+49/0)241
, but this
would really be a waste of time if you already had it.
Cheers,
Olaf
--
OLAF CHITIL, Lehrstuhl fuer Informatik II, RWTH Aachen, 52056 Aachen,
Germany
Tel: (+49/0)241/80-21212; Fax: (+49/0)241/-217
URL: http://www-i2.informatik.rwth-aachen.de/~chitil/
the equations inside a Rec binding are mutually recursive (and
hence there are as few of them as possible)?
Olaf
--
OLAF CHITIL, Lehrstuhl fuer Informatik II, RWTH Aachen, 52056 Aachen,
Germany
Tel: (+49/0)241/80-21212; Fax: (+49/0)241/-217
URL: http://www-i2
or message "Program error: erroneous term" only unqualified names
are used. This can be very confusing when the error occurs inside an
imported module, the top level module does not import some names of the
erroneous term, and possibly the names are even defined differently in
the top lev
deriving construct, and attaching it to `data' and `newtype'
just makes the construct less useful.
Olaf
--
OLAF CHITIL, Lehrstuhl fuer Informatik II, RWTH Aachen, 52056 Aachen,
Germany
Tel: (+49/0)241/80-21212; Fax: (+49/0)241/-217
URL: http://www-i2.informatik.rwth
66 matches
Mail list logo