{"action":"opened","issue":{"url":"https://api.github.com/repos/MichaelRFairhurst/wake-compiler/issues/101","labels_url":"https://api.github.com/repos/MichaelRFairhurst/wake-compiler/issues/101/labels{/name}","comments_url":"https://api.github.com/repos/MichaelRFairhurst/wake-compiler/issues/101/comments","events_url":"https://api.github.com/repos/MichaelRFairhurst/wake-compiler/issues/101/events","html_url":"https://github.com/MichaelRFairhurst/wake-compiler/issues/101","id":58469822,"number":101,"title":"Proposal: Default varname 'fn' for functions","user":{"login":"MichaelRFairhurst","id":1627771,"avatar_url":"https://avatars.githubusercontent.com/u/1627771?v=3","gravatar_id":"","url":"https://api.github.com/users/MichaelRFairhurst","html_url":"https://github.com/MichaelRFairhurst","followers_url":"https://api.github.com/users/MichaelRFairhurst/followers","following_url":"https://api.github.com/users/MichaelRFairhurst/following{/other_user}","gists_url":"https://api.github.com/users/MichaelRFairhurst/gists{/gist_id}","starred_url":"https://api.github.com/users/MichaelRFairhurst/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MichaelRFairhurst/subscriptions","organizations_url":"https://api.github.com/users/MichaelRFairhurst/orgs","repos_url":"https://api.github.com/users/MichaelRFairhurst/repos","events_url":"https://api.github.com/users/MichaelRFairhurst/events{/privacy}","received_events_url":"https://api.github.com/users/MichaelRFairhurst/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/MichaelRFairhurst/wake-compiler/labels/parsing","name":"parsing","color":"d4c5f9"},{"url":"https://api.github.com/repos/MichaelRFairhurst/wake-compiler/labels/proposal","name":"proposal","color":"cc317c"},{"url":"https://api.github.com/repos/MichaelRFairhurst/wake-compiler/labels/semantics","name":"semantics","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/MichaelRFairhurst/wake-compiler/milestones/3","labels_url":"https://api.github.com/repos/MichaelRFairhurst/wake-compiler/milestones/3/labels","id":729570,"number":3,"title":"V1 Feature Push","description":"Every large feature we want by V1 should go in here, unless having/not having the feature is easy and if not having the feature inhibits normal program writing.","creator":{"login":"MichaelRFairhurst","id":1627771,"avatar_url":"https://avatars.githubusercontent.com/u/1627771?v=3","gravatar_id":"","url":"https://api.github.com/users/MichaelRFairhurst","html_url":"https://github.com/MichaelRFairhurst","followers_url":"https://api.github.com/users/MichaelRFairhurst/followers","following_url":"https://api.github.com/users/MichaelRFairhurst/following{/other_user}","gists_url":"https://api.github.com/users/MichaelRFairhurst/gists{/gist_id}","starred_url":"https://api.github.com/users/MichaelRFairhurst/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MichaelRFairhurst/subscriptions","organizations_url":"https://api.github.com/users/MichaelRFairhurst/orgs","repos_url":"https://api.github.com/users/MichaelRFairhurst/repos","events_url":"https://api.github.com/users/MichaelRFairhurst/events{/privacy}","received_events_url":"https://api.github.com/users/MichaelRFairhurst/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":5,"state":"open","created_at":"2014-07-23T11:26:13Z","updated_at":"2015-02-21T18:41:27Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2015-02-21T18:41:27Z","updated_at":"2015-02-21T18:41:27Z","closed_at":null,"body":"I'm finding myself writing the same sort of redundancy I don't like in code that accepts anonymous functions\r\n\r\n    T[] -- filter(Bool -- fn(T) filterer) {\r\n        //....\r\n            T[].push(filterer(T));\r\n        //...\r\n    }\r\n\r\nA backwards-compatible change would be to make 'filterer' optional by using 'fn' as an automatic variable name.\r\n\r\n    T[] -- filter(Bool -- fn(T)) {\r\n        //....\r\n            T[].push(fn(T));\r\n        //...\r\n    }\r\n\r\nbut I don't really like this because its not quite the same principal. Ommitted variable names doesn't create variables, they use types. So perhaps capitalizing Fn is the correct solution.\r\n\r\n    T[] -- filter(Bool -- Fn(T)) {\r\n        //....\r\n            T[].push(Fn(T));\r\n        //...\r\n    }\r\n\r\nThis is probably a semantic ambiguity, though, as the parser won't know if we're writing out\r\n\r\n    T[] -- filter(Bool -- Fn(T)) {\r\n        //....\r\n            T[].push(Fn(T) from this);\r\n        //...\r\n    }"}}