Quantcast
Channel: Martin's Programming Blog
Browsing all 25 articles
Browse latest View live

Parsing with Matches and Banana Clips

I find myself working with DSLs quite a bit, and thus I write a few parsers. Some languages are better than others for parsers and pattern matching is a technique that makes writing parsers a true joy....

View Article



Image may be NSFW.
Clik here to view.

Asynchronous workflows in Clojure

Asynchronous workflows is a very powerful feature of F#, and recently I wanted to explore the state of the JVM and in particular Clojure when it comes to replicate the functionality. In this post I'll...

View Article

Scheme as an External DSL in Clojure

This is a follow-up post to my previous "Scheme in Clojure" post.This time we implement a Scheme interpreter as an external DSL. This means that we consider the DSL as completely foreign to the host...

View Article

Poem of the day

View Article

Some thoughts on Clojure performance

Edit: This post recently re-surfaced on hacker news and caused a bit of a stir, mainly because of a slightly sensational/misleading title (was "Why is Clojure so slow?"). I wrote this before Rich...

View Article


ASCII Mandelbrot Set

Credit to Frink for inspiration.

View Article

Announcing Frinj, a practical unit-of-measure calculator DSL for Clojure

I am proud to announce a new Clojure project called "Frinj". Frinj is a practical unit-of-measure calculator DSL for Clojure. Key features;Tracks units of measure through all calculations allowing you...

View Article

Adding Live Unit Feeds to Frinj

A couple of weeks has passed since I've pushed Frinj to github and blogged/tweeted about it. The response have been pretty awesome, one highlight being when @stuarthalloway showed me a frinj+datomic...

View Article


Enumerate N-Queens solutions

View Article


What is a software company?

Software is different from most other things humans build, hence companies creating/selling/licensing software must be different from other 'production' companies as well? Some definitely are but the...

View Article

Distributed Actors in Clojure

Here's another post on a topic that have been discussed since the dawn-of-time, is there is nice and idiomatic way to write Erlang/Actor style distributed programs in Clojure? There has certainly been...

View Article

Image may be NSFW.
Clik here to view.

Some thoughts on logging

Have you ever tried to log from multi threaded program? Have you tried to make sense of the log output which multiple subsystems were logging to? Have you tried to do average latency calculations based...

View Article

N-Queens with core.logic, take 1

I've been "hammock-reading" the excellent Reasoned Schemer book the last couple of months, on my quest trying to develop a gut feel for when logic programming, as defined by miniKanren/core.logic, is...

View Article


N-Queens with core.logic, take 2

This post is a follow-up to my previous post on NQueens and core.logic, in which I tried to find the solutions using "pure" logic (without arithmetic goals) and basic minKanren / Reasoner Schemer...

View Article

Replicating Datomic/Datalog queries with core.logic

I've been toying with Datomic recently, and I particularly like the power of it's query language (~Datalog). Mr Halloway showed a couple of months ago how the query engine is generic enough to be run...

View Article


Replicating Datomic/Datalog queries with core.logic, take 2

This is a follow-up to my previous post on datalog-equivalent queries in core.logic.Here I present an alternate way to do the unification and join inside core.logic (without having to use...

View Article

Untying the Recursive Knot

Here I present a couple of examples of the functional design pattern "untying the recursive knot". I've found this useful in a couple of occasions, for instance when breaking apart mutually recursive...

View Article


cKanren time!

Mr David Nolen recently published core.logic 0.8.alpha2, with added cKanren (c for constraints) support. To celebrate this glorious event I'm writing up some core.logic/cKanren stuff I've been looking...

View Article

Some more Datalog

I've written about datalog and Datomic a bit recently. To conclude here's another post comparing execution speed with the contrib.datalog library, by Jeffrey Straszheim. Clojure1.4 ready source can be...

View Article

Some core.logic graph code

View Article
Browsing all 25 articles
Browse latest View live




Latest Images