if there's a standard way to release
testing code for extant libraries...
-Jan-Willem Maessen
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
string might be the next chunk of available data from the
handle.
I had the impression the internals of getContents from the prelude
worked a bit like this (in GHC, anyway).
-Jan-Willem Maessen
Ben
___
Haskell-Cafe mailing list
Haskell-Cafe
or the other
operation (insert or deleteMin) O(1). You might try one of Okasaki's
heap implementations from Purely Functional Data Structures. Heaps
don't need to support lookup, and can focus on doing insertion and
deletion well.
-Jan-Willem Maessen
Best regards
Tomasz
--
Gracjan
uncertain about this judgement, but they seem to
be less troublesome than...)
* Multiparameter type classes
-Jan-Willem Maessen
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
one that's actually H98? The types here aren't *that*
fiddly... :-)
-Jan-Willem Maessen
Cheers,
Andrew Bromage
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
dubious, you will find
co-induction quite unconvincing. :-)
-Jan-Willem Maessen
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
___
Haskell-Cafe mailing
if one is familiar with point-free programming
and skilled in its use.
Even something as simple as eta-reduction (as in the second and third
functions above) can seriously obscure the meaning of program code by
concealing the natural arity of a function.
-Jan-Willem Maessen
in
every monad:
return 4 return 5
=== (definition of )
return 4 = \_ - return 5
=== (monad laws)
(\_ - return 5) 4
=== (beta reduction)
return 5
We don't need to know anything about the semantics, etc. of any other
actions the monad might happen to define.
-Jan-Willem Maessen
-together list.)
-Jan-Willem Maessen
-- Thomas
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http
by
surrounding it in `backticks`).
And I thought that most programmers used zipWith, which has to be
prefix.
Proving that I so rarely want lists of pairs,
-Jan-Willem Maessen
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman
of hackery,
and then check the actual string dynamically.
-Jan-Willem Maessen
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe
different from the situation with GC-based finalization
in other languages (cf Java). This is why finalizers are generally
viewed as a backstop to clean up resources which were accidentally left
un-freed, rather than a universal solution to cleanup.
-Jan-Willem Maessen
to group related pieces which had
(for historical reasons) ended up scattered. It also cut our rebuild
time dramatically, and let us do cross-module inlining and optimization
safely.
In short, using mutual recursion was probably a bad idea, and we found
we were better off without it.
-Jan-Willem
forbid) understanding the FFI just to get a few bytes
on and off disk without the system monkeying with them en route?
Simplify. Please.
-Jan-Willem Maessen
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
pairs). I'm curious
which discipline you are actually trying to use.
-Jan-Willem Maessen
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe
to prefer one event over another.
But wouldn't it be better to write this using just tryTakeMVar, rather
than tryRead followed by blocking take? This would guarantee that the
events matched, and that the code would continue to work as expected
in the multiple-reader case.
-Jan-Willem Maessen
. Such situations are generally fraught with peril. In this
case, the peril is starvation of the debug thread---which you may or
may not actually care about.
-Jan-Willem Maessen
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org
, I've though a lot about it. I think
there's still a great deal to be learned. But I'd encourage you---and
anyone thinking about the problem---to understand the problems that
have stymied some very smart people.
Keean.
-Jan-Willem Maessen
Ketil Malde wrote:
Jan-Willem Maessen - Sun Labs East [EMAIL PROTECTED] writes:
There are, I believe, a couple of major challenges:
* It's easy to identify very small pieces of parallel work, but much
harder to identify large, yet finite, pieces of work. Only the
latter are really worth
digits or so.
-Jan-Willem Maessen
Keean
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org
that can
evaluate expressions in paralllel, will outperform single threaded C
code.
Only if you can keep the granularity of the work large. This hasn't
been so easy.
-Jan-Willem Maessen
Eager Haskell Implementor
___
Haskell-Cafe mailing list
[EMAIL
days, only hbc
provided access to command line arguments and environment variables,
and it did so through a global.
The argument on this subject happened back then, too (in the early
days of the Haskell mailing list!). I have no idea if there are
archives from back then...
-Jan-Willem Maessen
. In this respect it's
not that much different from laziness.
-Jan-Willem Maessen
Eager Haskell and pH implementor
Id hacker
Cheers
Conor
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Oleg replies to my message on eliminating existentials:
Jan-Willem Maessen wrote:
data Expr a = Val a | forall b . Apply (Expr (b - a)) (Expr b)
I've been trying to convince myself that we really need the
existential types here.
...
Now (Expr a) is really two things
this
conversation incredibly useful for me. Thanks to all so far.
-Jan-Willem Maessen
[EMAIL PROTECTED]
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe
applications for this
machinery we've built. We ought to seek them out.
-Jan-Willem Maessen
[EMAIL PROTECTED]
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe
\\|ET\\)
Regexp distinguishing just LaTeX end text.)
(defvar haskell-latex-boundary
^\\(\\(begin{code}$\\|begin{spec}$\\|BC$\\|BT{.*}$\\)\\|\\(end{code}$\\|end{spec}$\\|EC$\\|ET$\\)\\)
Regexp finding boundaries in LaTeX code)
snip
-Jan-Willem Maessen
/haskell-lib/
-Jan-Willem Maessen
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe
doesn't seem to fit the rest of the language nicely.
It's time to reduce the useful mechanisms to their essentials.
-Jan-Willem Maessen
Eager Haskell project
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
simple instance declarations.
As you can probably guess, I think (3) and (4) are the most profitable
avenues of exploration. And I'm pretty sure I _don't_ want syntax
macros for these. I'm still waiting to be convinced what I do want.
-Jan-Willem Maessen
Eager Haskell project
[EMAIL PROTECTED
a becomes too bulky to reason about when things act stragely.
Bottom is making things hard enough.
-Jan-Willem Maessen
PS - Again, we don't try to recover from errors. This is where the
comparison with IEEE arithmetic breaks down: NaNs are specifically
designed so you can _test_ for th
ERROR of x - expr = ERROR
In all, an excellent paper for those who are interested in this topic.
-Jan-Willem Maessen
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe
101 - 132 of 132 matches
Mail list logo