An exploration of logic programming; leaning toward pragmatism and purity, and yes: you can do both.
So, yeah. I'd like to program in a language that's easy to code (full-featured), does what I say (declarative), doesn't hurt me (pure).
Is that prolog? ... may...be? Haskell is wonderful, except when I want to do logic programming, which is all the time, so I'm always building logic frameworks on top of Haskell, then using Haskell. I'd like to skip that step, maybe? (maybe not: building logical frameworks can be fun, too, e.g.: Reasoned Schemer).
Prolog has its quirks. I also built an actionable ontology and deployed that to production... more than once, in Prolog, so I like Prolog.
Sometimes.
Except when I wish to program functionally, or typefully, which is all the time.
So, you see, I have a quandary. If I had Logic Haskell, or, contrapositively, Functional Prolog, ... both with Pi-types, I'd be ... happy?
I suppose I have to work on my happiness.
So, here I am: working on my happiness.
You may see some prolog here, you may see some haskell here. ... Idris? I have to settle on a functional/logical/pragmatic language, and until then, I'll explore the established languages until I can parse JSON like python does, and read and write to graph database like, ... well, python does.
Le sigh.
So, I now have a cat(egory) library in the making and have read up on higher-order functions in Prolog, so I like all these things. And implemented some data types. All these sit in my stdlib.
Now, ... typing in Prolog, that'll be nice, as well as a wee-bit more of the functional style.
Eh, programming is a work-in-progress, isn't it. Just like life.
- Encode and decode documents using my Huffman encoder
- REST access (done) ... or maybe shift data in and out, à la RedShift?
- Thought for article: "Partitioning Data by Type in neo4j Graph Database"
- AVL Trees ... (you know: borrowed and modified).
- Heaps/Priority Queues ... (again: borrowed).
- Huffman code ... but see TODOs
- JSON parsing library
... but now we need to add custom deserializers that iterate over each node. ... (started reification from JSON to Prolog with 02_jsonin)
- REST access and Cypher/neo4j-bridge
... and we also have a neo4j-on-the-cloud prolog graph store! YUS!
- An Elementary Prolog Library
- ... and further Richard O'Keefe musings
- prolog :- tutorial.
- Proving Metatheorems in Twelf
- P99 ... 99 problems in Prolog
- Reasoned Schemer and some workings on that problem set.
- binprolog sources (bp)