{"action":"created","issue":{"url":"https://api.github.com/repos/vshesh/Sexpr.jl/issues/2","repository_url":"https://api.github.com/repos/vshesh/Sexpr.jl","labels_url":"https://api.github.com/repos/vshesh/Sexpr.jl/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/vshesh/Sexpr.jl/issues/2/comments","events_url":"https://api.github.com/repos/vshesh/Sexpr.jl/issues/2/events","html_url":"https://github.com/vshesh/Sexpr.jl/issues/2","id":129266515,"number":2,"title":"Special Form Tests","user":{"login":"vshesh","id":2929957,"avatar_url":"https://avatars.githubusercontent.com/u/2929957?v=3","gravatar_id":"","url":"https://api.github.com/users/vshesh","html_url":"https://github.com/vshesh","followers_url":"https://api.github.com/users/vshesh/followers","following_url":"https://api.github.com/users/vshesh/following{/other_user}","gists_url":"https://api.github.com/users/vshesh/gists{/gist_id}","starred_url":"https://api.github.com/users/vshesh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vshesh/subscriptions","organizations_url":"https://api.github.com/users/vshesh/orgs","repos_url":"https://api.github.com/users/vshesh/repos","events_url":"https://api.github.com/users/vshesh/events{/privacy}","received_events_url":"https://api.github.com/users/vshesh/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/vshesh/Sexpr.jl/labels/test","name":"test","color":"eb6420"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-01-27T20:58:40Z","updated_at":"2016-03-28T22:38:33Z","closed_at":"2016-03-28T22:36:22Z","body":"Like #1 but related to special forms:\r\n\r\n## quoted lists\r\n- [x] `'()` returns empty tuple.\r\n- [x] `()` returns empty tuple.\r\n- [x] `(1 2 3)` gives `Expr(:call, 1, 2, 3)`\r\n- [x] `'(1 2 3)` gives `:((1,2,3))` \r\n\r\n## do\r\n- [x] do with no forms\r\n- [x] do with 1 form\r\n- [x] do with 2 forms\r\n\r\n## if \r\n- [ ] `(if)` -> throws error\r\n- [ ] if with test and no body -> throws error\r\n- [x] if with test and only true(then) case\r\n- [x] if with both cases\r\n- [x] if with form test and form true case (testing that it recurses)\r\n- [x] if with test/both cases as forms (again, recursion test)\r\n\r\n## def\r\n- [ ] `(def)` -> error\r\n- [ ] `(def x)` -> error def needs 3 forms.\r\n- [x] `(def x const)` -> should output x = const\r\n- [x] `(def x (form...))` -> should output x = form...\r\n\r\n## let\r\n- [ ] `(let)` -> error\r\n- [x] `(let [])` -> should return :(let; end)\r\n- [x] `(let [] x)` -> should return :(let; x end)\r\n- [ ] `(let [x] x)` -> error need to have x bind to something\r\n- [x] `(let [x 1] x)` -> return :(let x=1; x end)\r\n- [x] `(let [x 1 y (+ x 1)]  (+ y x))` -> return :(let x=1,y=x+1; y+x end)\r\n\r\n## fn\r\n- [ ] `(fn)` -> error\r\n- [x] `(fn [])` -> should return nil function ()->()\r\n- [x] `(fn [] x)` -> should return () -> x\r\n- [x] `(fn [x] x)` -> should return (x) -> x\r\n- [x] `(fn [x y] (+ y x))` -> (x,y) -> (+ y x)\r\n- [x] `(fn [x y] (inc x) (+ x y))` -> function(x,y) inc(x) x+y end\r\n- [x] `(fn name [x y] (+ x y))` -> function name(x,y) x+y end\r\n- [x] `(fn name \"docstring\" [x y] (+ x y))` -> function name(x,y) x+y end\r\n\r\n## defn\r\n- [x] `(defn name \"docstring\" [x y] (+ x y))` -> function name(x,y) x+y end\r\n\r\nmacro special forms will be their own test system.\r\n\r\n\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/vshesh/Sexpr.jl/issues/comments/202608513","html_url":"https://github.com/vshesh/Sexpr.jl/issues/2#issuecomment-202608513","issue_url":"https://api.github.com/repos/vshesh/Sexpr.jl/issues/2","id":202608513,"user":{"login":"vshesh","id":2929957,"avatar_url":"https://avatars.githubusercontent.com/u/2929957?v=3","gravatar_id":"","url":"https://api.github.com/users/vshesh","html_url":"https://github.com/vshesh","followers_url":"https://api.github.com/users/vshesh/followers","following_url":"https://api.github.com/users/vshesh/following{/other_user}","gists_url":"https://api.github.com/users/vshesh/gists{/gist_id}","starred_url":"https://api.github.com/users/vshesh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vshesh/subscriptions","organizations_url":"https://api.github.com/users/vshesh/orgs","repos_url":"https://api.github.com/users/vshesh/repos","events_url":"https://api.github.com/users/vshesh/events{/privacy}","received_events_url":"https://api.github.com/users/vshesh/received_events","type":"User","site_admin":false},"created_at":"2016-03-28T22:38:33Z","updated_at":"2016-03-28T22:38:33Z","body":"tests with error checking are still to be determined. "}}