Hoomla

“Symmetry is a complexity reducing concept […]; seek it everywhere.”

Instängd

clock maj 3, 2009 13:30 by author kullbom

Under senare tids programmering i C# har en känsla av instängdhet vuxit sig starkare och starkare hos mig.Jag kommer att tänka på en av de stackars katterna från Lambdacats och tror mig uppleva något liknande. För egen del har jag inte gått så långt att jag känner mig instängd av sidoeffekter i allmänhet. Den ständiga närvaron av null och exceptions är dock minst sagt frustrerande och kan beskrivas som att man konstant befinner sig inuti en Maybe-monad och en Error-monad på en gång utan att ha någon som helst möjlighet att någonsin komma därifrån (en hemsk känsla).

Till och med grundläggande och till synes helt oskyldiga operatorer som +, - och × (för att inte tala om /) är så opålitliga att de låtsas vara fria fast de hör hemma i både en och två monader (Overflow, DivisionByZero etc.).

Även om situationen i Haskell i allmänhet är bättre har man där, t.ex., valt att ha en definition av head av den olyckliga typen [a] -> a. Den skrämmande beskrivningen lyder: “Extract the first element of a list, which must be non-empty.”.

Om man som jag under vissa tider helt har undvikit arrayer av rädsla för IndexOutOfRange skulle man kanske önskat sig en något rimligare typ eller att man helt avstått från en definition av head m.fl.

Vi kan nu antingen acceptera vår eländiga “monadiska situation” och gå medpå att allt av olika skäl kan gå sönder eller - förgäves - fortsätta låtsas som om man med hjälp av Options, Exception-unioner och liknande skall kunna slå sig ut.

Men hur och vad vi än gör så gör vi det hela tiden inifrån de eländiga monaderna. Vi måste ut!

Bli den första att värdera denna post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Fyra tidskrifter

clock maj 3, 2009 09:47 by author kullbom

JFP OCaml Journal F# Journal The Monad Reader

Journal of Functional Programming

Journal of Functional Programming is the only journal devoted solely to the design, implementation, and application of functional programming languages, spanning the range from mathematical theory to industrial practice. Topics covered include functional languages and extensions, implementation techniques, reasoning and proof, program transformation and synthesis, type systems, type theory, language-based security, memory management, parallelism and applications. The journal is of interest to computer scientists, software engineers, programming language researchers and mathematicians interested in the logical foundations of programming.

Mycket hög kvalitet från Cambrigde Journals under redaktörerna Matthias Felleisen och Xavier Leroy. Kostar pengar.

The F#.NET Journal

Artiklar om F# av Jon Harrop (författaren till bl.a “F# for Scientists”). Ett axplock:

  • The Essence of Functional Programming
  • Exploiting Tail Recursion
  • Sequence expressions and comprehensions
  • Parser combinators
  • Implementing a simple Ray Tracer
Kostar pengar.

The OCaml Journal

Till viss del samma artiklar som i F# Journal fast utifrån ett OCaml-perspektiv. Kostar pengar.

The Monad.Reader

The Monad.Reader is an electronic magazine about all things Haskell. It is less formal than a journal, but more enduring than a wiki-page or blog post. There have been a wide variety of articles, including: exciting code fragments, intriguing puzzles, book reviews, tutorials, and even half-baked research ideas.

Mycket läsvärd och gratis (även källkoden finns tillgänglig via darcs-repon). I senaste numret (#13) återfinns bl.a. den mycket läsvärda “The Typeclassopedia” av Brent Yorgey.

Bli den första att värdera denna post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5