Skip to content

Instantly share code, notes, and snippets.

@joseanpg
joseanpg / gist:947255
Created April 28, 2011 20:24
humane.js unnecessary let
/**********************************************************************
Current Version: unnecessary scope
**********************************************************************/
eventOn('load',function(){
transitionSupported = (function(style){ //Surplus
var prefixes = ['MozT','WebkitT','OT','msT','KhtmlT','t'];
for(var i = 0, prefix; prefix = prefixes[i]; i++){
if(prefix+'ransition' in style) return true;
}
return false;
@joseanpg
joseanpg / gist:947455
Created April 28, 2011 22:05
humane.js
/**
* HumaneJS
* Humanized Messages for Notifications
* @example
* humane('hello world');
*/
;(function(win,doc){
var eventOn, eventOff;
if (win.addEventListener) {
var concatenate = (function(){
var params;
//Auxiliares "privados"
function hasElements(){return params.length>0;}
function createString(){
var res = "";
for(var i=0;i<params.length;i++){
/* Son objetivos fundamentales:
* - Minimizar las funciones ECMAScript utilizadas
* - Optimizar en espacio, evitando la creación de arrays transitorios
*
* Suponemos que no se utilizará esta función con arrays creados
* en frames externos, con lo cual instanceof Array es seguro
*/
function aplaneitor(soa,acu) {
if (soa instanceof Array) {
var phineas = (function(){
function aplaneitor(soa,acu) {
if (soa instanceof Array) {
for (var j=0, len = soa.length;j<len;j++) {
aplaneitor(soa[j],acu);
}
}
else {
acu.push(soa);
}
/* Abstracción!!!
*
* En la función aplaneitor de https://gist.github.com/1143902
* podemos apreciar el esquema foldl (reduce)
* En esta versión se ha generalizado dicha función
* obteniendo una versión de foldl valido para "árboles de arrays"
*/
function foldl(f,acu,soa) {
if (soa instanceof Array) {
@joseanpg
joseanpg / aplaneitor2.js
Created August 13, 2011 18:43 — forked from juandopazo/gist:1144127
Concatenar arrays anidados recursivamente
function aplaneitor2(arr,sep){
return function step(a){return Array.isArray(a) ? a.map(step).join(sep) : a}(arr);
}
var test = ["hola", ["soy", ["juan", "fernandez"] ], "y", ["no", "tengo", ["dinero"] ] ];
console.log(aplaneitor2(test,'**')) // -> hola**soy**juan**fernandez**y**no**tengo**dinero
// FUNCIONES AUXILIARES
/*
* La siguiente función cuenta las propiedades
* (tanto propias como hereradas) de un objeto
*/
function contarPropiedades(obj) {
var recuento = 0;
for (propiedad in obj) recuento ++;
@joseanpg
joseanpg / gist:1146822
Created August 15, 2011 14:06 — forked from juandopazo/gist:1146157
Concatenar arrays anidados sin recursividad
function esArray(array) {
return Object.prototype.toString.call(array) == '[object Array]');
}
function desempaqueta(array,index) {
Array.prototype.splice.apply(array, [index, 1].concat(array[index]));
}
function flatten(arr) {
arr = arr.concat();
-- Estrategias para aplanar arboles
-- ATENCIÓN: Estas nuevas funciones no han sido probadas
-- (No tengo GHC disponible en esta maquina)
module Aplaneitor where
data Tree a = Leaf a | Trees [Tree a] deriving(Show)
cow = Trees [Leaf 1, Trees [ Leaf 2, Leaf 3], Leaf 4]
-- Estrategias para aplanar arboles