Skip to content

Instantly share code, notes, and snippets.

@coolguy1990
Created May 4, 2017 09:05
Show Gist options
  • Save coolguy1990/7c0c7ed4c786049cb4d3bc200c69f6ca to your computer and use it in GitHub Desktop.
Save coolguy1990/7c0c7ed4c786049cb4d3bc200c69f6ca to your computer and use it in GitHub Desktop.
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.11/require.min.js"></script>
</head>
<body><script id="jsbin-javascript">
requirejs.config({
paths: {
ramda: 'https://cdnjs.cloudflare.com/ajax/libs/ramda/0.13.0/ramda.min',
jquery: 'https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min',
},
});
require([
'ramda',
'jquery',
],
function(_, $) {
////////////////////////////////////////////
// Utils
var Impure = {
getJSON: _.curry(function(callback, url) {
$.getJSON(url, callback);
}),
setHtml: _.curry(function(sel, html) {
$(sel).html(html);
}),
};
var img = function(url) {
return $('<img />', {
src: url,
});
};
var trace = _.curry(function(tag, x) {
console.log(tag, x);
return x;
});
////////////////////////////////////////////
var url = function(t) {
return 'http://api.flickr.com/services/feeds/photos_public.gne?tags=' +
t + '&format=json&jsoncallback=?';
};
//var app = _.compose(Impure.getJSON(), url);
//var prop = _.curry(function(property, object) {
//return object[property];
//});
var mediaUrl = _.compose(_.prop('m'), _.prop('media'));
var srcs = _.compose(_.map(mediaUrl), _.prop('items'));
var images = _.compose(_.map(img), srcs);
var renderImages = _.compose(Impure.setHtml('body'), images);
var app = _.compose(Impure.getJSON(renderImages), url);
app('cats');
// map's composition law
//var law = compose(map(f), map(g)) === map(compose(f, g));
// original code
//var mediaUrl = _.compose(_.prop('m'), _.prop('media'));
//var srcs = _.compose(_.map(mediaUrl), _.prop('items'));
//var images = _.compose(_.map(img), srcs);
//Refactoring
//var mediaUrl = _.compose(_.prop('m'), _.prop('media'));
//var images = _.compose(_.map(img), _.map(mediaUrl), _.prop('items'));
//var mediaUrl = _.compose(_.prop('m'), _.prop('media'));
//var images = _.compose(_.map(_.compose(img, mediaUrl)), _.prop('items'));
//var mediaUrl = _.compose(_.prop('m'), _.prop('media'));
//var mediaToImg = _.compose(img, mediaUrl);
//var images = _.compose(_.map(mediaToImg), _.prop('items'));
});
</script>
<script id="jsbin-source-javascript" type="text/javascript">requirejs.config({
paths: {
ramda: 'https://cdnjs.cloudflare.com/ajax/libs/ramda/0.13.0/ramda.min',
jquery: 'https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min',
},
});
require([
'ramda',
'jquery',
],
function(_, $) {
////////////////////////////////////////////
// Utils
var Impure = {
getJSON: _.curry(function(callback, url) {
$.getJSON(url, callback);
}),
setHtml: _.curry(function(sel, html) {
$(sel).html(html);
}),
};
var img = function(url) {
return $('<img />', {
src: url,
});
};
var trace = _.curry(function(tag, x) {
console.log(tag, x);
return x;
});
////////////////////////////////////////////
var url = function(t) {
return 'http://api.flickr.com/services/feeds/photos_public.gne?tags=' +
t + '&format=json&jsoncallback=?';
};
//var app = _.compose(Impure.getJSON(), url);
//var prop = _.curry(function(property, object) {
//return object[property];
//});
var mediaUrl = _.compose(_.prop('m'), _.prop('media'));
var srcs = _.compose(_.map(mediaUrl), _.prop('items'));
var images = _.compose(_.map(img), srcs);
var renderImages = _.compose(Impure.setHtml('body'), images);
var app = _.compose(Impure.getJSON(renderImages), url);
app('cats');
// map's composition law
//var law = compose(map(f), map(g)) === map(compose(f, g));
// original code
//var mediaUrl = _.compose(_.prop('m'), _.prop('media'));
//var srcs = _.compose(_.map(mediaUrl), _.prop('items'));
//var images = _.compose(_.map(img), srcs);
//Refactoring
//var mediaUrl = _.compose(_.prop('m'), _.prop('media'));
//var images = _.compose(_.map(img), _.map(mediaUrl), _.prop('items'));
//var mediaUrl = _.compose(_.prop('m'), _.prop('media'));
//var images = _.compose(_.map(_.compose(img, mediaUrl)), _.prop('items'));
//var mediaUrl = _.compose(_.prop('m'), _.prop('media'));
//var mediaToImg = _.compose(img, mediaUrl);
//var images = _.compose(_.map(mediaToImg), _.prop('items'));
});
</script></body>
</html>
requirejs.config({
paths: {
ramda: 'https://cdnjs.cloudflare.com/ajax/libs/ramda/0.13.0/ramda.min',
jquery: 'https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min',
},
});
require([
'ramda',
'jquery',
],
function(_, $) {
////////////////////////////////////////////
// Utils
var Impure = {
getJSON: _.curry(function(callback, url) {
$.getJSON(url, callback);
}),
setHtml: _.curry(function(sel, html) {
$(sel).html(html);
}),
};
var img = function(url) {
return $('<img />', {
src: url,
});
};
var trace = _.curry(function(tag, x) {
console.log(tag, x);
return x;
});
////////////////////////////////////////////
var url = function(t) {
return 'http://api.flickr.com/services/feeds/photos_public.gne?tags=' +
t + '&format=json&jsoncallback=?';
};
//var app = _.compose(Impure.getJSON(), url);
//var prop = _.curry(function(property, object) {
//return object[property];
//});
var mediaUrl = _.compose(_.prop('m'), _.prop('media'));
var srcs = _.compose(_.map(mediaUrl), _.prop('items'));
var images = _.compose(_.map(img), srcs);
var renderImages = _.compose(Impure.setHtml('body'), images);
var app = _.compose(Impure.getJSON(renderImages), url);
app('cats');
// map's composition law
//var law = compose(map(f), map(g)) === map(compose(f, g));
// original code
//var mediaUrl = _.compose(_.prop('m'), _.prop('media'));
//var srcs = _.compose(_.map(mediaUrl), _.prop('items'));
//var images = _.compose(_.map(img), srcs);
//Refactoring
//var mediaUrl = _.compose(_.prop('m'), _.prop('media'));
//var images = _.compose(_.map(img), _.map(mediaUrl), _.prop('items'));
//var mediaUrl = _.compose(_.prop('m'), _.prop('media'));
//var images = _.compose(_.map(_.compose(img, mediaUrl)), _.prop('items'));
//var mediaUrl = _.compose(_.prop('m'), _.prop('media'));
//var mediaToImg = _.compose(img, mediaUrl);
//var images = _.compose(_.map(mediaToImg), _.prop('items'));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment