Skip to content

Commit

Permalink
Merge pull request #1 from Nami-Doc/patch-1
Browse files Browse the repository at this point in the history
JS HL
  • Loading branch information
Brian committed Jan 2, 2014
2 parents acb630d + 6c92946 commit 752e715
Showing 1 changed file with 14 additions and 12 deletions.
26 changes: 14 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,24 @@ lenses.js
Functional lenses that compose and stuff


var Lenses = require('./src/lenses').expose(global)
, assert = require("assert")
, compose = require('./src/lib/pointfree').compose
;
```js
var Lenses = require('./src/lenses').expose(global)
, assert = require("assert")
, compose = require('./src/lib/pointfree').compose
;

// for demo purposes
var toUpperCase = function(x) { return x.toUpperCase(); };
// for demo purposes
var toUpperCase = function(x) { return x.toUpperCase(); };

var user = {name: "Bob", addresses: [{street: '99 Maple', zip: 94004, type: 'home'}, {street: '2302 Powell', zip: 94001, type: 'work'}]}
var user = {name: "Bob", addresses: [{street: '99 Maple', zip: 94004, type: 'home'}, {street: '2302 Powell', zip: 94001, type: 'work'}]}

var L = makeLenses(['name', 'addresses', 'street']);
var L = makeLenses(['name', 'addresses', 'street']);

var secondAddressesStreet = compose(L.addresses, _2, L.street)
var secondAddressesStreet = compose(L.addresses, _2, L.street)

over(secondAddressesStreet, toUpperCase, user) // { name: 'Bob', addresses: [ { street: '99 Maple', zip: 94004, type: 'home' }, { street: '2302 POWELL', zip: 94001, type: 'work' } ] }
over(secondAddressesStreet, toUpperCase, user) // { name: 'Bob', addresses: [ { street: '99 Maple', zip: 94004, type: 'home' }, { street: '2302 POWELL', zip: 94001, type: 'work' } ] }

view(L.name, user) // 'Bob'
view(L.name, user) // 'Bob'

set(L.name, 'Kelly', user) // {name: "Kelly", addresses: [{street: '99 Maple', zip: 94004, type: 'home'}, {street: '2302 Powell', zip: 94001, type: 'work'}]}
set(L.name, 'Kelly', user) // {name: "Kelly", addresses: [{street: '99 Maple', zip: 94004, type: 'home'}, {street: '2302 Powell', zip: 94001, type: 'work'}]}
```

0 comments on commit 752e715

Please sign in to comment.