diff options
author | Camil Staps | 2016-07-01 08:30:37 +0200 |
---|---|---|
committer | Camil Staps | 2016-07-01 08:30:37 +0200 |
commit | 4d7a4800346e3084c62df811bde83aa56fd7de9d (patch) | |
tree | ada02323e0c6a8f800c3f215781e4e415235d6a3 /GraphStore.icl | |
parent | Descriptors, Program (diff) |
Fixes
Diffstat (limited to 'GraphStore.icl')
-rw-r--r-- | GraphStore.icl | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/GraphStore.icl b/GraphStore.icl index e7f0be6..3d966c0 100644 --- a/GraphStore.icl +++ b/GraphStore.icl @@ -3,6 +3,7 @@ implementation module ABC.GraphStore import StdEnv import ABC.Machine +import ABC.Misc :: GraphStore = { nodes :: [Node] , free :: Int @@ -16,13 +17,13 @@ where get :: NodeId [Node] -> Node get 0 [n:_] = n get _ [] = abortn "gs_get: index too large" - get i [_:s] = gs_get (i-1) s + get i [_:s] = get (i-1) s gs_init :: GraphStore gs_init = {nodes=[], free=STORE_SIZE} gs_newnode :: GraphStore -> (GraphStore, NodeId) -gs_newnode {free=:0} = abortn "gs_newnode: graph store is full" +gs_newnode {free=0} = abortn "gs_newnode: graph store is full" gs_newnode {nodes,free} = ({nodes=[Empty:nodes], free=free-1}, free) gs_update :: NodeId (Node -> Node) GraphStore -> GraphStore @@ -34,4 +35,4 @@ where update :: Int [Node] (Node -> Node) -> [Node] update 0 [n:s] f = [f n:s] - update i [n:s] f = [n:update (i-1) f s] + update i [n:s] f = [n:update (i-1) s f] |