Una delle buone caratteristiche di IPython è che posso ispezionare una funzione.
In [1]: def inc(x):
...: """Increments a number"""
...: return x+1
...:
In [2]: inc?
Type: function
String form: <function inc at 0x105f19758>
File: /Users/christophercaycock/<ipython-input-1-f192044ce250>
Definition: inc(x)
Docstring: Increments a number
Posso farlo perché non può esistere che una sola definizione di inc
, sebbene possa operare diversamente a seconda del tipo che gli fornisco.
Molti linguaggi tipizzati staticamente hanno un sovraccarico, in cui posso eseguire azioni diverse a seconda del tipo in fase di compilazione. In queste lingue potrebbero esserci più definizioni di inc
.
Mi chiedevo se ci sono shell interattive in grado di gestirlo. Ho controllato IHaskell , ma non sono riuscito a trovare un esempio nella loro documentazione.
Sono solo curioso di sapere se sia anche possibile (e come sarebbe) fornire un aiuto interattivo in caso di sovraccarico.