{"action":"closed","issue":{"url":"https://api.github.com/repos/tzlaine/yap/issues/63","repository_url":"https://api.github.com/repos/tzlaine/yap","labels_url":"https://api.github.com/repos/tzlaine/yap/issues/63/labels{/name}","comments_url":"https://api.github.com/repos/tzlaine/yap/issues/63/comments","events_url":"https://api.github.com/repos/tzlaine/yap/issues/63/events","html_url":"https://github.com/tzlaine/yap/issues/63","id":299053960,"number":63,"title":"Consider adding transform_evaluate()","user":{"login":"tzlaine","id":82177,"avatar_url":"https://avatars3.githubusercontent.com/u/82177?v=4","gravatar_id":"","url":"https://api.github.com/users/tzlaine","html_url":"https://github.com/tzlaine","followers_url":"https://api.github.com/users/tzlaine/followers","following_url":"https://api.github.com/users/tzlaine/following{/other_user}","gists_url":"https://api.github.com/users/tzlaine/gists{/gist_id}","starred_url":"https://api.github.com/users/tzlaine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tzlaine/subscriptions","organizations_url":"https://api.github.com/users/tzlaine/orgs","repos_url":"https://api.github.com/users/tzlaine/repos","events_url":"https://api.github.com/users/tzlaine/events{/privacy}","received_events_url":"https://api.github.com/users/tzlaine/received_events","type":"User","site_admin":false},"labels":[{"id":837605564,"url":"https://api.github.com/repos/tzlaine/yap/labels/Boost%20Review","name":"Boost Review","color":"1d76db","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-02-21T17:11:08Z","updated_at":"2018-02-23T16:48:34Z","closed_at":"2018-02-23T16:48:34Z","author_association":"OWNER","body":"> What does evaluate_with_context now do?  Let's say expr is \"a + b\".  Does\r\n> the context only apply to the evaluation of a and b as terminals, or does\r\n> it apply to the plus operation as well?\r\n\r\n  It applies to the plus operation first.  If the\r\ncontext has a handler for plus, then it's up to\r\nthe context to handle recursion.  If it does not,\r\nthen it becomes\r\nevaluate_with_context(a, ctx, x...)\r\n  + evaluate_with_context(b, ctx, x...)\r\n\r\n>  Are such applications of the\r\n> context conditional?  How does the reader quickly grasp what the\r\n> evaluate_with_context() call does?  This seems like really muddy code to\r\n> me.  If you have something else in mind, please provide more detail -- I\r\n> may of course be misunderstanding you.\r\n>\r\n\r\n  My idea is that it would behave exactly like\r\ntransform, except that the default behavior for\r\nnodes that are not handled by the context is\r\nto evaluate the operators instead of building\r\na new expression.\r\n\r\nAh, I think I get it now.  This is really a transform_evaluate() then?  If so, that does sound useful."}}
{"actor":{"display_login":"tzlaine"}}