I was playing with Neo4J (following a recent post I stumbled upon by Sergey Tihon), and had everything wired up and ready to test out, but when I tried running my code I kept getting errors saying that I hadn’t connected to the neo4j database. This puzzled me because I had clearly called connect, but every time I tried to access my connection object I got an error.
The issue was that I didn’t realize that f# class members are always deferred. It makes sense that they are after I traced through it, but I couldn’t spot the bug for the life of me at first.
My code looked like this:
module Connection = type Connection (dbUrl) = member x.client = new GraphClient(new Uri(dbUrl)) member x.create item = x.client.Create item member x.connect() = x.client.Connect() x
If I had more experience with F# I probably would have spotted this right … Read more