Sven Panne wrote:
2013/9/27 Heinrich Apfelmus :
Actually, I'm reading about WebGL right now, and it appears to me that it
should be very easy to support in Threepenny. [...]
I am not sure if WebGL is enough: WebGL is basically OpenGL ES 2.0,
which is again basically OpenGL 2.0 plus
as changed the first alternative to
"portable, easy to install and alien-looking". That's the niche I'm
belaboring with threepenny-gui.
Personally, I think that the "easy to install" criterion beats all the
others -- it is hard to use a GUI library that you can
Tom Ellis wrote:
On Wed, Oct 02, 2013 at 11:24:39AM +0200, Heinrich Apfelmus wrote:
I'm not sure whether the Eq instance you mention is actually
incorrect. I had always understood that Eq denotes an equivalence
relation, not necessarily equality on the constructor level.
Ther
Christopher Done wrote:
On 4 October 2013 10:56, Heinrich Apfelmus wrote:
In particular, the Locker stores arbitrary values like Dynamic , except
that values are extracted and removed with the help of a Key . This gets
rid of the Typeable constraint.
lock :: Key a -> a -> Loc
erence types". One of
the main points of the Typable class is actually that it enforces
monomorphic types. Similarly, the vault library enforces monomorphic
types by having newKey in the IO monad.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
e, so that LVish will yield
"results that are deterministic up to equivalence".
However, you are mainly focused on equality of keys for a Map. In this
case, it might be possible to move towards pointer equality and use
things like Hashable or StableName .
Best regards,
Heinrich A
possible to change fonts? I have found that fonts (and shadows)
have a huge impact on the "wow"-factor of a plot. In fact, I could not
help but ask a speaker during a talk what font he used for a particular
plot... it just looked great!
Best regards,
Heinrich Apfelmus
--
http://apfelmus.n
if you want to see whether the Threepenny + WebGL route is
viable for you, it's probably a good idea to do a quick test in plain
HTML + JS first, to see whether performance is good enough for your purpose.
Best regards,
Heinrich Apfelmus
--
http://
latform, easy to install and works from GHCi! On the flip side,
it doesn't support native OpenGL.
[1]: http://www.haskell.org/haskellwiki/Threepenny-gui
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing
unreachable weak
pointers are tombstoned or not.). Is that correct?
[1]: http://www.haskell.org/haskellwiki/Threepenny-gui
[2]: http://community.haskell.org/~simonmar/papers/weak.pdf
[3]:
http://hackage.haskell.org/packages/archive/base/latest/doc/html/System-Mem-Weak.html
Best regar
even more elegantly
and, in particular, integrated with functional reactive programming
(FRP). See my recent project
http://www.haskell.org/haskellwiki/Threepenny-gui
for a post-wxHaskell take on a GUI API.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.n
on it.
http://new-hackage.haskell.org/
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
assert that all
required files are registered in the cabal file.
http://hackage.haskell.org/package/cabal-scripts
Nice! However, I can't find the cabal-test executable after installing
your package?
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshos
files, I guess it's equally useful for writing MIDI files.
[hsc3]: http://hackage.haskell.org/package/hsc3
[midi]: http://hackage.haskell.org/package/midi
[tomato-rubato]: https://github.com/HeinrichApfelmus/tomato-rubato
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
__
s not ready for public
consumption yet. ;)
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
or public consumption yet, but any feedback is
appreciated, of course.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
n see, it hasn't been picked up by
anyone else, including me, and I think that's because it missed the
modularity goals I had in mind.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-C
ut it would be of little impact if it doesn't come with a
good UI.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
lare a final "wire which runs all the wires at each step". It
feels a bit weird to me to have wires like guiSetPropW that perform
side effects, i.e. where it makes a different whether you observe their
results or not. That's a complexity where I feel that something &quo
Ertugrul Söylemez wrote:
Heinrich Apfelmus wrote:
I concur that chaining wires with the andThen combinator is very
slick, I like it a lot. Wolfgang Jeltsch recently described a similar
pattern for classical FRP, namely a behavior that doesn't live
forever, but actually ends at some poi
Ertugrul Söylemez wrote:
Heinrich Apfelmus wrote:
You said that reactive-banana didn't feel as simple after the
introduction of dynamic event switching, though. Could you pinpoint
some particular thing that made you feel like that? Maybe a type
signature or a tutorial or something el
Peter Althainz wrote:
Heinrich Apfelmus wrote:
Of course, I have to ask: what influenced your choice of FRP library in
favor of netwire instead of reactive-banana ?
good question, actually I need to thank you for your excellent tutorials
on FRP and GUI on the WEB. I tried the version of
ourse, I have to ask: what influenced your choice of FRP library in
favor of netwire instead of reactive-banana ?
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
Alberto G. Corona wrote:
The template look is very simple but it uses a lot of dynamic code behind
I changed the template to something more light.
http://haskell-web.blogspot.com.es/
Much better, thanks!
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
k all cookies and I'm using adblock, though.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
gramming in these
languages is not very different.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Nathan Hüsken wrote:
On 12/08/2012 10:32 AM, Heinrich Apfelmus wrote:
Fair enough, but I don't see how this can be fitted into a general
pattern. If the animation "state" is coupled tightly to the game logic
"state", then the question whether the animation is part of t
justify the cost for the little benefit you obtain this
way. Unfortunately, it seems to me that the tuition costs in the U.S.
strongly suggest the second approach. To avoid this, I recommend to
either go abroad or become very good and acquire a scholarship.
Best regards,
H
Nathan Hüsken wrote:
Heinrich Apfelmus wrote:
In that light, the separation seems straightforward to me. Given the
time-varying values that represent game objects,
bSpaceShipPosition :: Behavior Position
bAsteroidPositions :: Behavior [Position]
bTime :: Behavior Time
experience, it doesn't work very well. A newtype
data Foo = Foo { bar :: forall a . baz a }
usually works best.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
ht
Nathan Hüsken wrote:
Heinrich Apfelmus wrote:
Personally, I would recommend is a complete change in perspective.
The main idea of FRP is that it is a method to describe the evolution of
values in time. What is a game? It's just a picture that evolves in
time. The user can exert influen
ainly turn out to be zero, but
you will never find out if you wet your feet only a little bit.)
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
messy as the imperative equivalent, but
the thing is that it cannot get any messier because you can translate it
rather directly, so you don't lose anything.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe ma
ype by
virtue of some mild form of parametricity. But at this point, you've put
the whole map into the type.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Michael Snoyman wrote:
Heinrich Apfelmus wrote:
Michael Snoyman wrote:
Note that I wasn't necessarily advocating such a pragma. And a lot of
my XML code actually *does* use two IsString instances at the same
time, e.g.:
Element ("img" :: Name) (singleton ("href
latter
would correspond to a type
element :: (IsString name, IsString s, IsMap map)
=> name -> map name s -> [Element]
element name map = Element (toName name) (toMap map)
One benefit would be that the function will accept any list as a map,
not just list li
Roman Cheplyaka wrote:
* Heinrich Apfelmus [2012-09-23 10:51:26+0200]
Unfortunately, making literals polymorphic does not always achieve
the desired effect of reducing syntax. In fact, they can instead
increase syntax! In other words, I would like to point out that there
is a trade-off
Simon Hengel wrote:
On Sun, Sep 23, 2012 at 06:11:59PM +0200, Heinrich Apfelmus wrote:
How do I access internal modules with cabal test , though? Last
time I tried, I could not find a way to expose in the test section
of the cabal file.
It works, if you add the source directory to hs-source
library.
How do I access internal modules with cabal test , though? Last time I
tried, I could not find a way to expose in the test section of the cabal
file.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing
ect can be seen with the good old numeric literals.
Sometimes, you just have to introduce a type signature (:: Int) to make
a program unambiguous.
In this light, I don't think that the trade-off made by the
OverloadedLists extension is big enough.
bound becomes out-of-date.
This already exists:
http://packdeps.haskellers.com/
Indeed. It even has RSS feeds, like this
http://packdeps.haskellers.com/feed/reactive-banana
Extremely useful!
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshos
Show == exists a. Show a => a
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
hat should work. You have to reify the type a in Key a in the value
of the key. I think it's possible to use a data type family for the map
type.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Hask
member
correctly, it uses the representation Behavior a = Time -> a and this
introduces other efficiency problems not present in reactive-banana.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@h
n-sharing.html
^1: Note that the times do not need to follow a uniform time step.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
-banana#documentation
By the way, Conal's Bezier editor doesn't make much use of the switcher
combinator, so you can directly translate it into reactive-banana.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Ca
haskell.org/packages/archive/reactive-banana/latest/doc/html/Reactive-Banana-Model.html
The key idea is to keep all events synchronous and to reify some cases
of "this event does not occur right now".
Best regards,
Heinrich Apfelmus
perational
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
rm.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
olution.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
pty g
But the corresponding analysis for monadic parsers is either harder or
hopelessly inefficient because we don't know the structure of the parser
until we run it on some input.
See also this answer on StackOverflow:
http://stackoverflow.com/a/7863380/403805
Best regards,
Heinrich Apfe
monad by turning it into an arrow. (I refer to "STM"
in a very liberal sense here: whether memory is transactional or not is
unimportant, the only thing that matters is a computation that composes
atomically.)
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
_
ive-banana project homepage. Thanks
for your great explanation!
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
together.
It's best to look at the example for that and peruse the documentation
in Reactive.Banana.Frameworks in case something is unclear.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haske
;s
because the data types still aren't lazy enough, you have to use another
model. That's one reason why implementing FRP has traditionally been hard.)
P.S. Sorry about the long mail, the explanation ended up a little longer
than I originally expected. :)
I know it was time to get
Florian Hartwig wrote:
Heinrich Apfelmus wrote:
So while the two are related, CAS is a machine primitive that works
for a single operation and on a single word while STM is a software
abstraction that isolates sequences of operations on multiple memory
locations from each other.
Is it
x27;
Defining the pair at once works:
p :: (Show a, Ord b) => (a -> String, b -> b -> Bool)
p = (id . show, flip (<))
I guess that didn't help a lot, somebody with deeper GHC-fu than me will
have to step in.
The problem is that f1 and f2 are polymorphic functions. To put
p
The other way round?
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
John Lato wrote:
From: Heinrich Apfelmus
Also, as far as I am aware, you can't do low-level audio programming in
SuperCollider, i.e. play a list of samples that you've calculated
yourself. That's cool if you're only interested in sound design, but bad
for learning how aud
ring a data
set and trying stuff out.
Concerning UI, the following project suggestion aims to give GHCi a web GUI
http://hackage.haskell.org/trac/summer-of-code/ticket/1609
But one of your criteria is that a good UI should come with a help
system, too, right?
Best regards,
Heinrich Ap
.e. play a list of samples that you've calculated
yourself. That's cool if you're only interested in sound design, but bad
for learning how audio programming works.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
-banana library.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
serialhex wrote:
On Sat, Mar 17, 2012 at 11:01 AM, Heinrich Apfelmus
wrote:
The task is to implement a small audio synthesizer in Haskell.
seriously?!?! i'm not in his class, but i'm game! i learn better
when i'm working on something interesting, and i want to make my
(c
Sajith T S wrote:
Heinrich Apfelmus wrote:
Just for reference, here the direct link that is now online:
http://www.google-melange.com/gsoc/org/google/gsoc2012/haskell
How up-to-date/relevant are the projects in the ideas page?
http://hackage.haskell.org/trac/summer-of-code/report/1
a fun project
to work on, which is just as well.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
nline:
http://www.google-melange.com/gsoc/org/google/gsoc2012/haskell
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
tions aims to make that
available to non-Emacsers, via the web browser.
http://hackage.haskell.org/trac/summer-of-code/ticket/1609
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskel
here
might be more suitable mentors out there.
This sounds like a great GSoC project to me. Maybe you can add it to the
list of project suggestions, Jurriën?
http://hackage.haskell.org/trac/summer-of-code/report/1
Best regards,
Heinrich Apfelmus
--
http://apfelmu
the answer, but then you have to worry about the *order* in which you
perform your reduction steps.
It's not wrong to perform graph reduction, and any student should do it
at one point in their lives, but the restriction to operational
semantics would miss an important abstraction that
ans, don't hesitate to
reach for the sky, but help us climb to the tree top first.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
ing and if possible fun example of what one can
achieve in Haskell. Things that sprung to my mind are rather dull: prime
factors, fibonacci numbers.
A morse code decoder, perhaps?
http://apfelmus.nfshost.com/articles/fun-with-morse-code.html
Best regards,
Heinrich Apfelmu
7;s a weird bug in GHC 7.2 that break reactive-banana-wx.
Watching the build log on Hackage is fun: sometimes it doesn't build,
then it does build, then not. Fortunately, everything works fine on GHC
7.0.4 .
Best regards,
Heinrich Apfelmus
--
http://
ive-banana library.
http://haskell.org/haskellwiki/Reactive-banana
http://www.haskell.org/haskellwiki/Reactive-banana/Examples
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskel
7;d like to see, instead of letting
the students pick themselves.
Here we go, I've written up a proposal:
http://apfelmus.nfshost.com/blog/2012/02/14-summer-of-code-proposal.html
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Sergiu Ivanov wrote:
Heinrich Apfelmus wrote:
What's the time frame for project proposals? I have two ideas in my head
that I think are unusually cool. To make a successful SOC project, they need
a bit of preparation on my part, though, so I'm wondering how much time I
have to impleme
iques everyone's interest, I'm sure that someone
will volunteer to be a mentor.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
e to implement a proof of concept or two.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
serialhex wrote:
Heinrich Apfelmus wrote:
I'm not so sure about the "soon" part, but yes, using FRP to make music is
part of the plan.
you know, i've been thinking about this recently, and while i need more
haskell skillz if i want to do some sound synthesis, i thin
Tom Murphy wrote:
Heinrich Apfelmus wrote:
For instance, I'm currently
dabbling with sound generation and it is only natural that I want to hear
the sound instead of seeing a textual representation.
>
> Does this mean we're going to see music FRP examples soon?!
I'm
like, say, a fancy REPL built on wxHaskell?
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Jan Christiansen wrote:
On Jan 2, 2012, at 2:34 PM, Heinrich Apfelmus wrote:
Without an explicit guarantee that the function is incremental, we can't do
anything here. But we can just add another constructor to that effect if we
turn ListTo into a GADT:
data ListTo a b
case cs of
[] -> f [] $ x []
(c:cs) -> let f' = f . (c:); x; = x . (c:) in
f' `partialseq` x' `partialseq` (f' <*> x')
to obtain space efficient parallel and sequential composition. In fact,
by using constr
Conal Elliott wrote:
Heinrich Apfelmus wrote:
The function
f :: Int -> IO Int
f x = getAnIntFromTheUser >>= \i -> return (i+x)
is pure according to the common definition of "pure" in the context of
purely functional programming. That's because
f 42 = f (43-1) =
Perhaps the difficulties could be
addressed, but I doubt it, and I haven't seen claims pursued far
enough to find out.
Personally, the operational semantics given in SPJ's "Tackling the
Awkward Squad" always struck me as an accurate model of how GHC performs IO.
Best regard
Steve Horne wrote:
Heinrich Apfelmus wrote:
Maybe it helps to try to find an example of a function f :: A -> B
for some cleverly chosen types A,B that is not pure, i.e. does not
return the same values for equal arguments.
[..]
For your specific challenge, place that as a left-h
Steve Horne wrote:
Heinrich Apfelmus wrote:
Again, purity refers to the semantics of functions (at run-time):
given the same argument, will a function always return the same
result? The answer to this question solely decides whether the
language is pure or impure. Note that this depends on
f computation.
Why would IO Int be something special or mysterious? It's an ordinary
value like everything else; it's on the same footing as [Char], Maybe
Int, Int -> String, Bool, and so on. I see no difference between the
list [1,2,3] :: [Int] and the action "
Steve Horne wrote:
Heinrich Apfelmus wrote:
Purity has nothing to do with the question of whether you can express
IO in Haskell or not.
The beauty of the IO monad is that it doesn't change anything about
purity. Applying the function
bar :: Int -> IO Int
to the valu
John Lato wrote:
From: Heinrich Apfelmus
* Meta-programming / partial evaluation. When designing a DSL, it is
often the case that you know how to write an optimizing compiler for
your DSL because it's usually a first-order language. However, trying to
squeeze that into GHC rules is hop
Int , it's not the Int you would get "when executing this action".
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
s) and panning, but I've found the work tough
going for modelling the note lists where I want the system discrete in
both input (specification) and output.
Consider me interested. How does your approach compare to
Conal-style FRP with behaviors and events?
Best regards,
Heinrich Apfelmus
--
Sebastian Fischer wrote:
Heinrich Apfelmus wrote:
Likewise, each function from lists can be represented in terms of our new
data type [...]
length' :: ListTo a Int
length' = CaseOf
(0)
(\x -> fmap (1+) length')
length = interpret length'
This
s,
modulo chunking and weird naming.
2. My point is topped by scathing irony: if Haskell had a form of
*partial evaluation*, we could write applicative combinators for
*ordinary* functions [a] -> r and express average in constant space.
In other words, partial evaluation would make it unnec
kell. See
http://en.wikibooks.org/wiki/Haskell/Denotational_semantics
It's irrelevant whether _|_ is "unrealistic", it's just a mathematical
model anyway, and a very useful one at that. For instance, we can use it
to reason about strictness, which gives us information about lazy
ev
ause it's usually a first-order language. However, trying to
squeeze that into GHC rules is hopeless. Having some way of compiling
code at run-time would solve that. Examples:
** Conal Elliott's image description language Pan
** Henning Thielemann's synthesizer-llvm
ive-banana/Examples
Jeremy, I would love to be able to use wxHaskell from ghci on MacOS X;
that would speed up my GUI development cycle considerably.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Ha
ng in Haskell.
* Conor McBride and Ross Paterson.
Applicative Programming with Effects.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/ha
ametricity tells you that that the function f is actually
"constant" in a certain sense. But to my knowledge, there is no way to
make this knowledge internal to System F.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
___
Haskel
r cost is only Θ(1).
The best way to reason about other "demand patterns" than normal form is
Okasaki's method of attributing a debt to each constructor. See also
http://apfelmus.nfshost.com/articles/debit-method.html
Best regards,
is clearly causal as a composition of two causal functions. The point is
that the innermost behavior was already available "in full", so it's
perfectly possible to evaluate it at any time desired.
Of course, the function
double' x t = \t' -> if t' <= t then x
1 - 100 of 873 matches
Mail list logo