From Christian Borgelt:
SaM is a program to find frequent item sets (also closed and maximal) with a split and merge algorithm (Split and Merge), which combines a depth-first traversal of the subset lattice with a horizontal transaction representation. The main strength of this algorithm is not its speed (although it is not slow, but even outperforms apriori and eclat on some data sets), but the simplicity of its structure. Basically all the work is done in one recursive function of about fairly few lines of code. In addition, it only uses a simple array as the only data structure.