
Homophony Groups in Haskell - PieSquared
http://andrew.gibiansky.com/blog/linguistics/homophony-groups
======
jonnybgood
This is not a bash on Haskell as I like Haskell, but is every Haskell article
or discussion academic? It's all fascinating and interesting (especially the
OP), but some of us would like to learn about Haskell's applicability in the
real world, not just in computer science academia. I would like to read about
Haskell workflows, productivity, and the positives/negatives of using it in
your organization. Languages like Go and Clojure bring up these kinds of
conversations all the time, so why is it so silent (or at least very low
volume) on Haskell's front?

~~~
judk
There aren't a lot of consumer facing companies using Haskell. Scrive is one,
but I can't find blogs.

Galois makes "highly reliable" software stuff for hardware manufactures and
crypto clients.

Edward Kmett is writing/using a Haskell variant for use at the bank where he
works.

[http://elm-lang.org/](http://elm-lang.org/) Elm is a FRP/DHTML webapp-
building language Haskell variant whose compiler is a Haskell program. Check
out Prezi and Evan's blogs Prezi.com recent hired its author Evan Czaplicki

Draw amazing diagrams in Haskell, with Diagrams:

[http://projects.haskell.org/diagrams/gallery.html](http://projects.haskell.org/diagrams/gallery.html)

Yesod (Michael Snoyman) is a full-festured webapp stack. Michael blogs its
features.

Ultimately, you don't see large teams using Haskell, and there isn't full
integration with all the popular consumer web infrastructure. So instead you
have a bunch of small niche products, and the language used to teach
mathematical concepts in blogs like Dan Piponi's

~~~
platz
Don't forget Simon Marlow is at facebook now [1]

But even there the goal is not about adopting Haskell in the large, but using
rather using Haskell to create a DSL for end users/employees internally in FB
to easily create search/spam filter behaviors.

Still, it's a start.

[1] [http://www.haskellcast.com/episode/004-simon-marlow-on-
paral...](http://www.haskellcast.com/episode/004-simon-marlow-on-parallelism-
and-concurrency)

------
platz
I've realized lately that
[http://www.reddit.com/r/haskell/](http://www.reddit.com/r/haskell/) is always
the place to go for latest haskell news.

~~~
jcurbo
I also like [http://haskellnews.org/](http://haskellnews.org/)

------
waqf
In answer to his question about the equivalent problem in French:
[http://people.mpim-bonn.mpg.de/zagier/files/exp-
math-2/fullt...](http://people.mpim-bonn.mpg.de/zagier/files/exp-
math-2/fulltext.pdf)

------
tunesmith
I had no idea that draught is pronounced draft. I always thought that whatever
I heard was always "draft", and that draught was some word that I only came
across in written english.

~~~
jfb
I have a shockingly large "read-only" English vocabulary, at least relative to
my age (42) and native language (American English). I still get caught out
from time to time -- "quay" was a particularly humiliating bête noire.

~~~
tunesmith
My favorite was at a party where the (verbal) quiz question was what a
"yamikah" is. I had absolutely no idea. Then they told me what it was, and I
said - as if the quiz question had gotten it wrong - "Ohhhhh! You mean a YAR-
MULK."

~~~
ahomescu1
Something similar happened to me: a friend of mine kept telling me he worked
for a security company called Semantic, and much later I realized he meant
Symantec (pronounced like "semantic").

------
gjm11
Some of the homophone pairs the author used seem pretty dubious to me:
ant/aunt, choral/coral, air/err, awed/odd, veldt/felt. This is partly British
versus American English, but not wholly.

My personal homophony group is not trivial (I think); in particular, I believe
that for all pairs of words I regard as having the same pronunciation, the
number of "v"s is the same. The counterexample alleged on the linked page is
"veldt = felt", but I (like the Dutch, I believe) pronounce "veldt" with a "v"
rather than an "f" sound.

I can reduce everything else to the identity using only (what I think are)
uncontroversial homophone pairs, so I claim that every native English speaker
of large enough vocabulary has a homophony group that's either trivial or
isomorphic to Z (and generated by "v").

(I did need some uncommon words, though I didn't try very hard to avoid them:
od, gneiss, phlox, qat, flyte, lam. And some somewhat-uncommon ones: banns,
rapt, wright.)

~~~
philsnow
agreed, I didnt have to look far at all: affect / effect are (and sound)
completely different.

also as an aside, both effect and affect are both verbs and nouns.

~~~
rspeer
Most people pronounce the verb "affect" and the noun "effect" the same.

~~~
dragonwriter
> Most people pronounce the verb "affect" and the noun "effect" the same.

Most people I've encountered pronounce the verb "affect" and noun "effect"
differently, though the difference can be slight. (schwa for affect vs. short
e for effect)

------
jfarmer
I'm going to put on my math hat for a second, because this blog post was a bit
confusing for me at first. I had to read through the post a few times to
understand what the "homophony group" was.

For this comment, I don't want to dive into this post from the perspective of
someone who's never studied abstract algebra before, so what I'm about to
write won't make much sense to anyone who hasn't. If you know a little bit of
group theory, though, you should be able to follow along.

In math-ese, the group under consideration is

    
    
        <a,b,c,...,z | knight=night, ad=add, arc=ark, ...>  
    

Defining a group this way is called a "group presentation". The symbols to the
left of the | are called "generators" and the symbols to the right are called
"relations." For example, one presentation of the integers modulo 4 with mod-4
addition is

    
    
        <x | x+x+x+x = 1>
    

See
[http://en.wikipedia.org/wiki/Presentation_of_a_group](http://en.wikipedia.org/wiki/Presentation_of_a_group)
for the gory details.

Anyhow, the blog post confused me at first because the "homophony group" is a
kind of mathematical double entendre. In algebra one often omits the group
operation explicitly, writing "xy" instead of "x.y," where "." is the group
operation. This implicit understanding is what makes the "joke" work.

So, on the one hand, we write down the relation "ad=add" in our presentation
because ad and add are homophones in English. On the other hand, in group-
land, we mean a.d = a.d.d, where (again) "." is the group operation. In group-
land, however, there's no sense that "a" is anything special. The 26 symbols
"a" to "z" are arbitrary and we could easily write, say,

    
    
        <σ,b,c,...,z | knight=night, σd=σdd, ...>
    

or use any other 26 distinct symbols for "a" to "z." The generators tell us
what symbols we have at our disposal and the relations tell us how we can
reduce combinations of those symbols to the identity element.

Math jokes. Oh buddy.

For the CS folks among us, there's a computational problem called the "group
isomorphism problem" which asks, "Given two group presentations, are they
isomorphic?" This problem is provably undecidable:
[http://en.wikipedia.org/wiki/Group_isomorphism_problem](http://en.wikipedia.org/wiki/Group_isomorphism_problem)
This means you can't write a single algorithm which takes two arbitrary group
presentations as inputs and correctly determines whether the groups as
presented are isomorphic.

