head.in.the.box
| Forum | Thread | Replies | Latest activity |
|---|---|---|---|
| Coffeehouse | Erik Meijer: The World According to LINQ | 5 | Sep 03, 2011 at 9:03 PM |
| Coffeehouse | Volta - Dead or Alive? | 15 | Jun 02, 2011 at 9:37 PM |
Loading User Information from Channel 9
Something went wrong getting user information from Channel 9
Loading User Information from MSDN
Something went wrong getting user information from MSDN
Loading Visual Studio Achievements
Something went wrong getting the Visual Studio Achievements
| Forum | Thread | Replies | Latest activity |
|---|---|---|---|
| Coffeehouse | Erik Meijer: The World According to LINQ | 5 | Sep 03, 2011 at 9:03 PM |
| Coffeehouse | Volta - Dead or Alive? | 15 | Jun 02, 2011 at 9:37 PM |
Checking In: Eric Lippert - On Compiler Evolution, Designing C# and Blogging
Apr 08, 2011 at 8:38 PM@Herbous: You are most welcome
E2E: Herb Sutter and Erik Meijer - Perspectives on C++
Jan 14, 2011 at 7:58 PM@Mr Crash: Cheers!
E2E: Herb Sutter and Erik Meijer - Perspectives on C++
Jan 14, 2011 at 12:33 PM@davewill:
These should have the same mechanism for capturing free variables from the enclosing scope as lambdas.
It seems so obvious to me, that object-oriented languages have closures for objects.
Programming Streams of Coincidence with Join and GroupJoin for Rx
Jan 12, 2011 at 6:40 PM@Charles: They are the best indeed!
C9 Lectures: Dr. Ralf Lämmel - The Quick Essence of Functional Programming
Sep 27, 2010 at 4:00 PM@ǃ: If you crave that kind of gourmet theory, have a look athttp://wwwhome.cs.utwente.nl/~fokkinga/index.html#detail_0000003413
C9 Lectures: Dr. Ralf Lämmel - The Quick Essence of Functional Programming
Sep 24, 2010 at 10:21 PM@RichardAlan:perhaps watch the Haskell series first?
Fundamentalist functional programmers are really, really lazy. Even more that Ruby programmers, they actually take the DNRY motto to the extreme limit. Whenever they see a pattern repeating in their code, they try to encapsulate it in a reusable abstraction.
The interesting thing about Haskell and other advanced functional languages (http://en.wikipedia.org/wiki/Pure_type_system), is that you can also define abstractions over type constructors (not just over types as with generics in Eiffel, Java, C#, ...).
Once you can do that you suddenly discover design patterns, in the case of this lecture monads, that you did not see before: "Aha, this piece of code is has precisely the same structure as that,".
As with all cool concepts, in programming, it turns out that the mathematicians had long ago already discovered the same thing and called it "monads".
Other patterns that Ralf talks and will talk about are initial algebras, final co-algebras, homomorphisms (bananas, folds, lenses, unfolds, ..). Going even further, Ralf's hobby is to scrap *all* your boilerplate (http://research.microsoft.com/en-us/um/people/simonpj/papers/hmap/).
Another favorite hobby of fundamentalist functional programmers is to write programs in so-called "point-free" style, that is, using as few "variables" as possible (http://www.haskell.org/haskellwiki/Pointfree). Ralf might entertain and awe the audience with some Perls (pun intended) in this category in future lectures.
Anyway, this is just a long winded way of saying that all is going on is pattern matching. So don't despair, it is like thoseautosterograms, if you stare at it long enough, you will suddenly see it.
[Hey Channel 9, where is the spell checking in the comments?]
C9 Lectures: Dr. Ralf Lämmel - The Quick Essence of Functional Programming
Sep 22, 2010 at 3:14 PMAfter this lecture *nobody* can claim anymore that Monads are difficult.
C9 Lectures: Dr. Ralf Lämmel - Advanced Functional Programming - Evolution of an Interpreter
Sep 01, 2010 at 5:01 PMAll young grasshoppers please remember "wax on, wax off, wax on, wax off, ..."
Inside SPUR - A Trace-Based JIT Compiler for CIL
Apr 15, 2010 at 9:20 PMYes, SPUR is a tracing JIT for MSIL.
Inside SPUR - A Trace-Based JIT Compiler for CIL
Apr 15, 2010 at 1:14 PMCompiling MSIL to JavaScript is the opposite of SPUR, which compiles JavaScript to MSIL. The interesting hypothesis of using a tracing JIT is that it does not matter at which side of the equation you start since all hot abstractions will be "traced away" at runtime. The potential of no-pay abstraction is quite enticing. It is like being able to feast on an all-you-can-eat buffet without gaining any weight
See more comments…