{"action":"created","issue":{"url":"https://api.github.com/repos/jackfirth/lens/issues/206","labels_url":"https://api.github.com/repos/jackfirth/lens/issues/206/labels{/name}","comments_url":"https://api.github.com/repos/jackfirth/lens/issues/206/comments","events_url":"https://api.github.com/repos/jackfirth/lens/issues/206/events","html_url":"https://github.com/jackfirth/lens/issues/206","id":104610721,"number":206,"title":"lens-fragment","user":{"login":"jackfirth","id":8175575,"avatar_url":"https://avatars.githubusercontent.com/u/8175575?v=3","gravatar_id":"","url":"https://api.github.com/users/jackfirth","html_url":"https://github.com/jackfirth","followers_url":"https://api.github.com/users/jackfirth/followers","following_url":"https://api.github.com/users/jackfirth/following{/other_user}","gists_url":"https://api.github.com/users/jackfirth/gists{/gist_id}","starred_url":"https://api.github.com/users/jackfirth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jackfirth/subscriptions","organizations_url":"https://api.github.com/users/jackfirth/orgs","repos_url":"https://api.github.com/users/jackfirth/repos","events_url":"https://api.github.com/users/jackfirth/events{/privacy}","received_events_url":"https://api.github.com/users/jackfirth/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-09-03T02:49:45Z","updated_at":"2015-09-03T20:16:55Z","closed_at":null,"body":"This is something I implemented in my `ease` package:\r\n\r\n```racket\r\n> (lens-fragment first-lens '(1 foo bar) '(10 20 30))\r\n'((10 foo bar) (20 foo bar) (30 foo bar))\r\n```\r\n\r\nBasically you can take a lens, a target, and a list of new views to \"explode\" the target into a list of possible targets, one for each view. This worked really nicely with easings, where given a start point and a stop point and a number of steps it was easy to generate the list of steps. So for instance, given a `player` struct with a `posn` field, you could easily get a list of players moving along in the x direction:\r\n\r\n```racket\r\n> (lens-fragment player-posn-x-lens (player (posn 0 0)) '(1 2 3))\r\n'((player (posn 1 0)) (player (posn 2 0)) (player (posn 3 0)))\r\n```"},"comment":{"url":"https://api.github.com/repos/jackfirth/lens/issues/comments/137562241","html_url":"https://github.com/jackfirth/lens/issues/206#issuecomment-137562241","issue_url":"https://api.github.com/repos/jackfirth/lens/issues/206","id":137562241,"user":{"login":"jackfirth","id":8175575,"avatar_url":"https://avatars.githubusercontent.com/u/8175575?v=3","gravatar_id":"","url":"https://api.github.com/users/jackfirth","html_url":"https://github.com/jackfirth","followers_url":"https://api.github.com/users/jackfirth/followers","following_url":"https://api.github.com/users/jackfirth/following{/other_user}","gists_url":"https://api.github.com/users/jackfirth/gists{/gist_id}","starred_url":"https://api.github.com/users/jackfirth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jackfirth/subscriptions","organizations_url":"https://api.github.com/users/jackfirth/orgs","repos_url":"https://api.github.com/users/jackfirth/repos","events_url":"https://api.github.com/users/jackfirth/events{/privacy}","received_events_url":"https://api.github.com/users/jackfirth/received_events","type":"User","site_admin":false},"created_at":"2015-09-03T20:16:55Z","updated_at":"2015-09-03T20:16:55Z","body":"Fragment was the first name I came up with while working in the middle of the night on a completely unrelated package, so it's very likely it's not a good name."}}