[Haskell-cafe] Haskell Weekly News: Issue 322

Semen Trygubenko / Семен Тригубенко semen at trygub.com
Thu Mar 26 22:24:44 UTC 2015

New Releases

    99 Haskell: A web service by Bram Hoskin

    Solve live Haskell coding problems based on H-99 in the browser
    to strengthen your understanding of the language.



    Magic Cookies

    A commercial Android game is released that is written in Haskell
    using SDL2 for multimedia and the Arrowized Functional Reactive
    Programming DSL Yampa. The authors had to "escape their functional
    comfort zones and come up with smarter abstractions that mutable
    reality and performance demand". The game consists of 2K lines of
    code, of which 1K is game specific and 400 are Yampa code. The
    most complex parts were certain Yampa constructs (arrow-based,
    with lots of tupling/untupling).






    Finding a GHC bug by Neil Mitchell

    A write up of the hunt for bug #10176



    What are your most persuasive examples of using Quickcheck?

    Quickcheck helped many people in a number of areas — compiler
    optimisations, date/time validation, regular expressions,
    encoding/decoding, topological sort, fuzzing HTTP APIs and even
    exhibiting classical voting paradox! Apart from the obvious
    benefit of helping to find big juicy bugs as well as valid but
    potentially harmless tiny bugs in edge cases that no-one cares
    about, Quickcheck can help attain enlightenment in the sense that
    spelling out Quickcheck properties in itself can be rewarding
    because this can reveal assumptions that have been made without
    realizing it. Roman Cheplyaka reminds us about SmallCheck and that
    it should be used instead of Quickcheck when one has a good idea
    about what depth is needed and when exhaustive search at that
    depth is affordable.



    What is the difference between free monads and free monoids?

    A comment by Edward Kmett.


    Type-Checked Pseudo-Code

    Tom Ashworth argues that Haskell is an excellent tool for
    fleshing out ideas and prototyping solutions, and that it makes
    one generalize and shake out many conceptual bugs before concepts
    become code.


    Where does GHC spend most of it's time during compilation?

    Optimisation and codegen, it seems. Also, GHC compilation times
    went up substantially from version 7.6 to 7.8.


Quotes of the Week

    "Haskell doesn't feel like code. It feels like a language for
    thinking in: it's expressive, terse and simple, especially as
    type-checked pseudo-code." (Tom Ashworth)


    "Well that's not in the spec. If you want to change the
    requirements you have to renegotiate the contract =P" (sccrstud92)


    "Unit tests are double entry bookkeeping" (EvanDaniel)


    augustss> "Well, type checking is worst case exponential…"
    barsoap> "Yep. That's also the reason why I don't really get the
              insistence of dependently-typed languages to have to be
              total at the type level: I don't care whether
              type-checking takes ten or infinitely many years,
              both figures are too large."


    "Our prophet Djistra said that a testing shows the presence, not
    the absence of bugs … <snip> … Today Djistra would have been
    stoned under a myriad of inutile unit tests that people perform
    for a sense of false security, in a sort of superstitious
    sacrificial ritual, a waste of time to convince himself and others
    that his software is right." (agocorona)


    "You might also consider these sorts of infelicities as teachable
    moments" (ericpashman)


    "Nice gradual progression there. Big O notion, smoothly divided
    into 3 easy parts, then bam, Coyoneda. =)
    I approve.
    [Yes, I realize it is a bag of topics, not a course outline,
    but it still grabbed me.]" (edwardkmett)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20150326/ff8b835d/attachment.sig>

More information about the Haskell-Cafe mailing list