2017-09-10 5 views
0

J'essaie de faire un peu de lambda-calcul de base en Javascript et j'utilise Node comme REPL. Je définis l'identité et le combinateur mockinbird et exécute le combinateur mockingbird avec le combinateur d'identité en entrée.Modifier la sortie de l'objet fonction pour indiquer son nom

I = f => f 
M = f => f(f) 
M(I) 

Le combinateur mockinbird avec le combinateur d'identité en entrée fournit le combinateur d'identité. La dernière ligne donne la sortie suivante.

[Function] 

Mais il serait plus utile, dans ce cas, de sortir quelque chose comme ceci.

[Function: I] 

De cette façon, je peux voir quelle fonction est en cours d'impression. J'ai vu cela fait dans cette vidéo YouTube: https://www.youtube.com/watch?v=3VQ382QG-y4

Est-ce que quelqu'un a une idée de comment y parvenir?

+0

Quelle version de nœud utilisez-vous? Cela fonctionne bien pour moi sur 8.4.0: http://i.imgur.com/2WnMYOz.png – Shadowfacts

Répondre

0

Les versions les plus récentes de node.js le font déjà (au moins v6 +, peut-être plus tôt). Si vous ne souhaitez pas mettre à jour, vous pouvez définir une méthode inspect qui node.js utilisera lors de l'inspection:

Function.prototype.inspect = function() { 
    return "[Function: " + this.name + "]"; 
}