/**
 * Created by Veronica on 20/08/2015.
 */

var gatilho = function gatilho(){
    console.log('A');
};

function gatilho2(funcao){
    console.log('B');

    function gatilho3(){
        console.log('C');
        funcao();

    }
    return gatilho3;
}

g=gatilho;
g();
gatilho2(g);

gatilho2(function(){
    console.log('Anonimo');
});

var jExterna = gatilho2(g);
jExterna();
@@ -1,111 +1,152 @@
-/**%0A * Created by Veronica on 20/08/2015.%0A */%0A%0Avar gatilho = function gatilho()%7B%0A    console.log('A'
+function construtor() %7B%0A%0A  var observer = %7B%7D;%0A  var lista = %5B%5D;%0A  cont = 0;%0A%0A  observer.addObserver = function (obs) %7B%0A    lista.push(obs
 );%0A
+  
 %7D;%0A%0A
+  
 func
@@ -161,95 +161,96 @@
 ilho
-2(funcao)%7B%0A    console.log('B');%0A%0A    function gatilho3()%7B%0A        console.log('C');%0A  
+() %7B%0A%09cont++;%0A    for (var i = 0; i %3C lista.length; i++) %7B%0A      var funcao = lista%5Bi%5D;%0A
     
@@ -265,17 +265,16 @@
 ();%0A
-%0A
     %7D%0A  
   re
@@ -273,77 +273,107 @@
 %7D%0A  
-  return gatilho3;%0A%7D%0A%0Ag=gatilho;%0Ag();%0Agatilho2(g);%0A%0Agatilho2(
+%7D%0A%0A  observer.gatilho = gatilho;%0A  return observer;%0A%0A%7D%0A%0Avar obs = construtor();%0Avar obs1 = 
 function
 ()%7B%0A
@@ -372,80 +372,192 @@
 tion
+ 
 ()
+ 
 %7B%0A  
-  console.log('Anonimo');%0A%7D);%0A%0Avar jExterna = gatilho2(g);%0AjExterna
+console.log(%22obs1%22);%0A  console.log(cont);%0A%7D;%0Aobs.addObserver(obs1);%0A%0Avar obs2 = function () %7B%0A  console.log(%22obs2%22);%0A  console.log(cont);%0A%7D;%0Aobs.addObserver(obs2);%0A%0Aobs.gatilho
 ();
+%0A

Update programacaoFuncional.js