Aiuto interattivo in un linguaggio tipizzato staticamente con sovraccarico

-1

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.

    
posta chrisaycock 21.05.2015 - 02:34
fonte

1 risposta

0

Powershell gestisce questo mostrando le definizioni sovraccaricate quando si digita il comando nella console:

A simple example is the GetProcessesByName method from the System.Diagnostics.Process class. It has two overloads: one in which I pass only the process name and the other where I pass the process name and the name of the computer. This overload definition gives me the ability to return processes locally or remotely. Here are the overload definitions:

PS C:\Users\mredw> [System.Diagnostics.Process]::GetProcessesByName

OverloadDefinitions                                                                  

-------------------                                                                 

static System.Diagnostics.Process[] GetProcessesByName(string processName)          

static System.Diagnostics.Process[] GetProcessesByName(string processName, string machineName)              

Riferimenti

risposta data 21.05.2018 - 22:05
fonte

Leggi altre domande sui tag