The minimax looks like:
evaluate = maximize . maptree static . prune 5 . gametree
maximize finds the maximum value. static is a heuristic analysis of the value of the board. prune cuts the tree to a certain depth. gametree generates the infinite game tree.The alphabeta is more complicated, but also fits well within a pageful.
[1]: http://www.cs.utexas.edu/~shmat/courses/cs345/whyfp.pdf