----- 19/02/08 ----- > [E'] possibile esplorare con Scheme la signature di una procedura? > Per i miei scopi e' sufficiente [determinare] il numero di parametri > richiesti (anche perche' i tipi non sono esplici). > Volendo, avrei gia' trovato il modo di [eludere] il problema [...], ma > ritengo piu' elegante [utilizzare] una funzione che, data una procedura > da [analizzare], restituisca il numero di argomenti richiesti. Con i linguaggi PLT puoi utilizzare la procedura: (procedure-arity ) che restituisce il numero di argomenti di (se prefissato) o un dato strutturato (se variabile). Inoltre, la procedura: (procedure-arity-includes? ) restituisce #t se il numero di argomenti di puo' essere , #f altrimenti. > Rimanendo in tema, e' possibile estendere dinamicamente il numero di > argomenti richiesti da una procedura generata al volo senza ricorrere > ad una lista? > Poter generare procedure nella forma di ...(lambda (x1 x2 ... xN)... > invece che ...(lambda (arglist)... Si possono definire procedure che ammettono un numero variabile di argomenti ai fini dell'applicazione. Per esempio, la procedura p cosi' definita: (define p (lambda (x . y) ... )) puo' essere applicata in espressioni del tipo: (p 1) (p 1 2) (p 1 2 3) (p 1 2 3 4) ecc. Nel corpo della definizione, pero', y rappresenta una lista (e non potrebbe essere diversamente, se il numero di argomenti e' variabile), rispettivamente: (), (2), (2 3), (2 3 4), ecc. ----- * -----