{"action":"created","issue":{"url":"https://api.github.com/repos/genworks/gendl/issues/134","labels_url":"https://api.github.com/repos/genworks/gendl/issues/134/labels{/name}","comments_url":"https://api.github.com/repos/genworks/gendl/issues/134/comments","events_url":"https://api.github.com/repos/genworks/gendl/issues/134/events","html_url":"https://github.com/genworks/gendl/issues/134","id":17757078,"number":134,"title":"translate macro argument list","user":{"login":"reiniervandijk","id":1461416,"avatar_url":"https://avatars.githubusercontent.com/u/1461416?v=3","gravatar_id":"","url":"https://api.github.com/users/reiniervandijk","html_url":"https://github.com/reiniervandijk","followers_url":"https://api.github.com/users/reiniervandijk/followers","following_url":"https://api.github.com/users/reiniervandijk/following{/other_user}","gists_url":"https://api.github.com/users/reiniervandijk/gists{/gist_id}","starred_url":"https://api.github.com/users/reiniervandijk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/reiniervandijk/subscriptions","organizations_url":"https://api.github.com/users/reiniervandijk/orgs","repos_url":"https://api.github.com/users/reiniervandijk/repos","events_url":"https://api.github.com/users/reiniervandijk/events{/privacy}","received_events_url":"https://api.github.com/users/reiniervandijk/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/genworks/gendl/labels/API%20Enhancement","name":"API Enhancement","color":"eb6420"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2013-08-07T16:08:15Z","updated_at":"2015-01-29T23:57:00Z","closed_at":null,"body":"The translate macro argument list is ambiguous. And as a result, I see a lot of users make the same mistakes time after time. \r\n\r\ninstead of:\r\n```lisp\r\n(origin &rest offsets)\r\n```\r\nI suggest using something like:\r\n```lisp\r\n(origin direction offset &rest rest)\r\n```\r\nNow, a lot of students don't understand what they are supposed to give in and often end up saying something like:\r\n```lisp\r\n(translate (the center) :front)\r\n```\r\nIn such cases they get an error message:\r\n```lisp\r\n`nil' is not of the expected type `number'\r\n   [Condition of type type-error]\r\n```\r\nAnd are lost. Arguably, they should have read the manual a bit closer. However, I believe it is the duty of the software developer to be as unambiguous as possible when setting up a utilities library.\r\n\r\nIt should also be possible to check for proper input, viz. whether 3, 5 or 7 inputs are given. An even better would probably be to define this as a method for automatic safe-typing.\r\n\r\n```lisp\r\n(defmethod safe-translate ((origin vector) (direction symbol) (offset number))\r\n\t    (translate origin direction offset))\r\n```\r\n"},"comment":{"url":"https://api.github.com/repos/genworks/gendl/issues/comments/72129151","html_url":"https://github.com/genworks/gendl/issues/134#issuecomment-72129151","issue_url":"https://api.github.com/repos/genworks/gendl/issues/134","id":72129151,"user":{"login":"genworks","id":364720,"avatar_url":"https://avatars.githubusercontent.com/u/364720?v=3","gravatar_id":"","url":"https://api.github.com/users/genworks","html_url":"https://github.com/genworks","followers_url":"https://api.github.com/users/genworks/followers","following_url":"https://api.github.com/users/genworks/following{/other_user}","gists_url":"https://api.github.com/users/genworks/gists{/gist_id}","starred_url":"https://api.github.com/users/genworks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/genworks/subscriptions","organizations_url":"https://api.github.com/users/genworks/orgs","repos_url":"https://api.github.com/users/genworks/repos","events_url":"https://api.github.com/users/genworks/events{/privacy}","received_events_url":"https://api.github.com/users/genworks/received_events","type":"User","site_admin":false},"created_at":"2015-01-29T23:57:00Z","updated_at":"2015-01-29T23:57:00Z","body":"Open for Submissions: $100\r\n\r\n"}}