John Franco

ECECS, University of Cincinnati

hamming_tree.ppt | Motivation - Hamming sequences | |

slow-ham.cc | Generate-and-test solution is much too slow | |

ham_pq.cc | A C++ solution using a priority queue for thread simulation | |

pqueue.cc | The priority queue class for above | |

pqueue.h | The include file for above | |

lambda.ss | Scheme primer | |

ham.0.ss | Scheme solution attempt without "force" and "delay" fails | |

ham.1.ss | Scheme solution using lambda to "force" and "delay" | |

hamming.hs | A Haskell solution - force and delay embedded in the language | |

stream.cc | Use classes to implement "force" and "delay" in C++ | |

bigint.cc | We use character strings to represent large numbers | |

bigint.h | The include file for above | |

stream.1.cc | Stream network using above | |

hamming.cc | Stream (data driven) solution to Hamming's problem in C++ | |

topo.ppt | Finding a topological sort | |

topo.cc | Stream solution to finding a topological sort | |

syntax.ss | Macros in Scheme: define-syntax | |

topo.4.ss | Self modifying code: Scheme solution to finding a topological sort using
define-syntax | |

heap.ppt | Illustration of heaps in Scheme: prep for call/cc | |

call.5.ss | Uses for call-with-current-continuation | |

kalotan.6.ss | Kalotan puzzle using call/cc to control the search via
amb | |

color.7.ss | Coloring Europe via amb | |

magic.8.ss | Magic squares via amb | |

usman.9.ss | Supermarket logic puzzle via amb | |

y.ss | The Y combinator - for nameless recursion | |

ycombi.ss | Derivation of the Y combinator - power of lambda and weak typing | |

streams.doc | Further reading |