Dependently typed programming is becoming all the rage these days. Advocates are talking about all the neat stuff you can do by putting more and more information into the type system. It’s true! Type level programming gives you interesting new tools for designing software. You can guarantee safety properties, and in some cases, even gain performance optimizations through the use of these types. I’
Haskell’s abstraction facilities are awesome. Functor, Applicative, and Monad are all great, and Maybe is a pretty fantastic example of each. Lifting functions over optional values, combining optional values, and sequencing the possibility of Nothingness are pretty powerful tools for cleaning up code. The first time I refactored some Maybe infested code like: someFunc :: Int -> Maybe String someFu
This post is intended for beginners of functional programming interested in an exploration of laziness, Haskell, and recursion Haskell’s laziness enables some pretty cool tricks. The fix function is one of the neater ones, though it can be hard to understand how to use it from just the implementation and type signature. If you grab a calculator and put any number into it, you can start hitting the
Update from the Future (2019-05-22): I don’t recommend this technique any more. It’s quite complicated, and there’s a much simpler formulation of the idea that uses records-of-functions instead of type class instances. I’ve written up this formulation at the end of the blog post. I don’t recommend using the record-of-functions approach either, except in very narrow use cases, and with very constra
Haskell’s servant library is a compelling choice for a web API. By providing a specification of the API as a type, you ensure at compile time that your application correctly implements the specification. You also get automatically generated or derived clients for Haskell, JavaScript, and Ruby. Using servant-swagger, you can automatically generate swagger API specification, with all the goodies tha
It doesn’t have to be so thought out. A lot of people think that Haskell is great for expressing a problem that you understand really well, but it’s not so great for sketching out a problem and prototyping. In Ruby, you can start writing code that kinda works, and refine it to be more and more correct. In Haskell, you really have to get the code to type check before you do anything else, and if yo
November 15, 2015 A Beginner Tutorial This tutorial is aimed at people who are beginner-intermediate Haskellers looking to learn the basics of Template Haskell. I learned about the power and utility of metaprogramming in Ruby. Ruby metaprogramming is done by constructing source code with string concatenation and having the interpreter run it. There are also some methods that can be used to define
September 24, 2015 Recursive definitions are a lot of fun. The typical example of a recursive definition is the natural numbers: A natural number is either 0 or the successor of a natural number. Expressed in Haskell, this is: Zero is Zero, as you'd expect. One is Succ Zero, two is Succ (Succ Zero), etc. The natural numbers can be recursively defined like this. Extension One: Lists are extremely s
May 10, 2015 Finishing the Story (this is part three of three: one and two are linked) Last time, we corrected resource utilization by pulling the pool out and reusing it in queries rather than creating and destroying it each time. We also setup the app to run in a specialized monad transformer stack, allowing us some read-only configuration information, but we had to seriously trim down our appli
May 4, 2015 Some updates (this is part two of three: one and three are linked) The reddit thread about my previous post generated good discussion and advice. I'm going to attempt to work through them now. This guide contains a lot of information on what this all should look like in the end. I'll be taking a decent bit of information from that. Pooling The most urgent issue is that my database pool
May 2, 2015 A beginner's voyage I've been working on a small application with the Haskell web framework scotty, and decided to use the package Persistent to provide database access. I had some trouble getting them to work together, and I couldn't find many complete examples that used PostgreSQL. I thought I'd put at least one example online of how I've gotten it to work thus far. Actually, I lied.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く