• Stars
    star
    213
  • Rank 185,410 (Top 4 %)
  • Language
    JavaScript
  • Created almost 11 years ago
  • Updated about 9 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Composable kmett style lenses

lenses.js

Functional lenses that compose and stuff

require('./src/lenses').expose(global);
var compose = require('pointfree-fantasy').compose;

// setup an easy test fn
var toUpperCase = function(x) { return x.toUpperCase(); };

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

// make some lenses
var L = makeLenses(['name', 'addresses', 'street']);

// compose the lenses
var secondAddressesStreet = compose(L.addresses, L._num(2), L.street)

// mess with the user
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'

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

For those not already familiar with lenses, a brief introduction can be found here

ROADMAP:

  • add traverses and folds
  • more combinators
  • prisms
  • this list is getting long...

More Repositories

1

immutable-ext

fantasyland extensions for immutablejs
JavaScript
490
star
2

pointfree-fantasy

Point free wrappers for fantasy land
JavaScript
450
star
3

Practically-Functional

practically functional programming workshop
JavaScript
222
star
4

freeky

Free monad Collection
JavaScript
175
star
5

classroom-coding

Video series code
JavaScript
130
star
6

patterns_talk

code from fluent talk
JavaScript
97
star
7

Functional-Javascripts

algebraic data types, pattern matching, applicatives, monads, prelude, oliver steele's lib modified
JavaScript
86
star
8

RecursionTalk

Talk for Forward Conference Feb 2015
JavaScript
83
star
9

Oh-Composable-World

React Rally 2016
JavaScript
63
star
10

excursion

recursion-schemes in JS
JavaScript
57
star
11

spotify-fp-example

Egghead.io lesson
JavaScript
41
star
12

hardcorejs

Demos for the class
JavaScript
20
star
13

monio-demo-app

JavaScript
5
star
14

xamin

Examines rails apps and generates xmi for uml
Ruby
4
star
15

Code-Review

Creates pdf of modified files for code review.
3
star
16

Dizzywyg

A mini-wysiwyg that will apply css rules and semantic markup
JavaScript
3
star
17

CrudLinks

Dynamically creates links for crud actions.
Ruby
3
star
18

scottydemo

Port of scotty over express
JavaScript
2
star
19

Set-Attribute-Order

Declare an order for setters
Ruby
2
star
20

Nav-y

Yaml based navigation
Ruby
2
star
21

beautiful-folds

https://www.youtube.com/watch?v=6a5Ti0r8Q2s
1
star
22

Interfaces

Declare an interface and get yelled at for not implementing it.
Ruby
1
star
23

Public-Accessor

An attempt at public/private methods for rails attributes
Ruby
1
star
24

cssthingy

JavaScript
1
star
25

cypher

Scala
1
star
26

FRP-talk

1
star