Comments on: Functional concurrency with unambiguous choice http://conal.net/blog/posts/functional-concurrency-with-unambiguous-choice Inspirations & experiments, mainly about denotative/functional programming in Haskell 2020年9月26日 21:06:12 +0000 hourly 1 http://wordpress.org/?v=4.1.17 By: conal http://conal.net/blog/posts/functional-concurrency-with-unambiguous-choice#comment-218 2010年7月14日 16:25:16 +0000 http://conal.net/blog/?p=63#comment-218 Thanks for the comment, Peter. Please note from my post:

In the examples below, I’ll use "⊥" in place of "undefined", for brevity.

I’m making the same conventional pun as with “3” when describing an expression and when describing a denotation. Haskell was originally designed when we were stuck with ASCII, but we aren’t any longer.

I do appreciate care in distinguishing syntax from semantics. And I can see how using notation like “3” or “⊥” in both situations might confuse.

Also, I’ve taken care to treat all operational variations of ⊥ in a denotationally consistent way, including non-termination. If you think there’s a denotational inconsistency, could you please say what?

]]>
By: Peter Berry http://conal.net/blog/posts/functional-concurrency-with-unambiguous-choice#comment-217 2010年7月14日 15:44:14 +0000 http://conal.net/blog/?p=63#comment-217

In Haskell, ⊥ doesn’t simply block forever; it raises an exception.

Bit of a nitpick here: ⊥ is not a Haskell expression, but the denotational semantics of undefined. The operational semantics of undefined (at least in GHC) is indeed to raise an exception, but other expressions denoting ⊥ may have other operational semantics (including blocking forever, since the halting problem is undecidable).

Speaking of which, you probably want to catch NonTermination as well :)

]]>
By: Conal Elliott » Blog Archive » Lazier function definitions by merging partial values http://conal.net/blog/posts/functional-concurrency-with-unambiguous-choice#comment-216 2009年1月21日 01:06:47 +0000 http://conal.net/blog/?p=63#comment-216 […] like zip above, where we want unbiased laziness. (See posts on unambiguous choice and especially Functional concurrency with unambiguous choice.) The unamb operator returns the more defined of its two arguments, which are required to be equal […]

]]>
By: Conal Elliott » Blog Archive » Another angle on functional future values http://conal.net/blog/posts/functional-concurrency-with-unambiguous-choice#comment-215 2009年1月05日 05:45:32 +0000 http://conal.net/blog/?p=63#comment-215 […] After a while, I hit upon an idea that really tickled me. My original simple semantics could indeed serve as a correct and workable implementation if I used a subtler form of time that could reveal partial information. Implementing this subtler form of time turned out to be quite tricky, and was my original motivation for the unamb operator described in the paper Simply efficient functional reactivity and the post Functional concurrency with unambiguous choice. […]

]]>
By: Conal Elliott » Blog Archive » Smarter termination for thread racing http://conal.net/blog/posts/functional-concurrency-with-unambiguous-choice#comment-214 2008年12月19日 08:11:30 +0000 http://conal.net/blog/?p=63#comment-214 […] shower this morning that there’s a serious flaw in my unamb implementation as described in Functional concurrency with unambiguous choice. Here’s the code for racing two […]

]]>
By: Conal Elliott » Blog Archive » Merging partial values http://conal.net/blog/posts/functional-concurrency-with-unambiguous-choice#comment-213 2008年11月23日 00:07:17 +0000 http://conal.net/blog/?p=63#comment-213 […] About « Functional concurrency with unambiguous choice […]

]]>

AltStyle によって変換されたページ (->オリジナル) /