-[ Tue, Jan 10, 2012 at 10:15:54PM +0100, Andy Wingo ]----
> Why not use program-arguments-alist, or program-lambda-list?

Because they were not in the procedure index, hence the attached patch.

>From 6637ce41e5e8cbfefe4c14c47ac79c7a3f5a6cfe Mon Sep 17 00:00:00 2001
From: Cedric Cellier <cedric.cell...@securactive.net>
Date: Wed, 11 Jan 2012 17:12:48 +0100
Subject: [PATCH] document program-arguments-alist and program-lambda-list

---
 doc/ref/api-procedures.texi  |    9 +++++++++
 module/system/vm/program.scm |    2 ++
 2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/doc/ref/api-procedures.texi b/doc/ref/api-procedures.texi
index 2b4a05e..5875ced 100644
--- a/doc/ref/api-procedures.texi
+++ b/doc/ref/api-procedures.texi
@@ -270,6 +270,15 @@ sense at certain points in the program, delimited by these
 @code{arity:start} and @code{arity:end} values.
 @end deffn
 
+@deffn {Scheme Procedure} program-arguments-alist program [ip]
+@deffnx {Scheme Procedure} program-lambda-list [ip]
+Accessors for a representation of the arguments of a program, with both
+names and types (ie. either required, optional or keywords)
+
+@code{program-arguments-alist} returns this information in the form of
+an association list while @code{program-lambda-list} returns the same
+information in a form similar to a lambda definition.
+@end deffn
 
 @node Optional Arguments
 @subsection Optional Arguments
diff --git a/module/system/vm/program.scm b/module/system/vm/program.scm
index 02d5ec4..d4de335 100644
--- a/module/system/vm/program.scm
+++ b/module/system/vm/program.scm
@@ -238,11 +238,13 @@
 
 ;; the name "program-arguments" is taken by features.c...
 (define* (program-arguments-alist prog #:optional ip)
+  "Returns the signature of the given procedure in the form of an association 
list."
   (let ((arity (program-arity prog ip)))
     (and arity
          (arity->arguments-alist prog arity))))
 
 (define* (program-lambda-list prog #:optional ip)
+  "Returns the signature of the given procedure in the form of an argument 
list."
   (and=> (program-arguments-alist prog ip) arguments-alist->lambda-list))
 
 (define (arguments-alist->lambda-list arguments-alist)
-- 
1.7.2.5

Reply via email to