mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-29 14:30:34 +02:00
remove apply:nconc2last
* libguile/eval.c (scm_nconc2last): Remove, now unused. * doc/ref/api-evaluation.texi (Fly Evaluation): Remove docs.
This commit is contained in:
parent
39caffe79b
commit
5da2aae364
2 changed files with 0 additions and 53 deletions
|
@ -573,18 +573,6 @@ Call @var{proc} with the array of arguments @var{argv}, as a
|
||||||
@var{nargs}, as a @code{size_t}.
|
@var{nargs}, as a @code{size_t}.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
@deffn {Scheme Procedure} apply:nconc2last lst
|
|
||||||
@deffnx {C Function} scm_nconc2last (lst)
|
|
||||||
@var{lst} should be a list (@var{arg1} @dots{} @var{argN}
|
|
||||||
@var{arglst}), with @var{arglst} being a list. This function returns
|
|
||||||
a list comprising @var{arg1} to @var{argN} plus the elements of
|
|
||||||
@var{arglst}. @var{lst} is modified to form the return. @var{arglst}
|
|
||||||
is not modified, though the return does share structure with it.
|
|
||||||
|
|
||||||
This operation collects up the arguments from a list which is
|
|
||||||
@code{apply} style parameters.
|
|
||||||
@end deffn
|
|
||||||
|
|
||||||
@deffn {Scheme Procedure} primitive-eval exp
|
@deffn {Scheme Procedure} primitive-eval exp
|
||||||
@deffnx {C Function} scm_primitive_eval (exp)
|
@deffnx {C Function} scm_primitive_eval (exp)
|
||||||
Evaluate @var{exp} in the top-level environment specified by
|
Evaluate @var{exp} in the top-level environment specified by
|
||||||
|
|
|
@ -607,47 +607,6 @@ scm_apply_3 (SCM proc, SCM arg1, SCM arg2, SCM arg3, SCM args)
|
||||||
SCM_EOL);
|
SCM_EOL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This code processes the arguments to apply:
|
|
||||||
|
|
||||||
(apply PROC ARG1 ... ARGS)
|
|
||||||
|
|
||||||
Given a list (ARG1 ... ARGS), this function conses the ARG1
|
|
||||||
... arguments onto the front of ARGS, and returns the resulting
|
|
||||||
list. Note that ARGS is a list; thus, the argument to this
|
|
||||||
function is a list whose last element is a list.
|
|
||||||
|
|
||||||
Apply calls this function, and applies PROC to the elements of the
|
|
||||||
result. apply:nconc2last takes care of building the list of
|
|
||||||
arguments, given (ARG1 ... ARGS).
|
|
||||||
|
|
||||||
Rather than do new consing, apply:nconc2last destroys its argument.
|
|
||||||
On that topic, this code came into my care with the following
|
|
||||||
beautifully cryptic comment on that topic: "This will only screw
|
|
||||||
you if you do (scm_apply scm_apply '( ... ))" If you know what
|
|
||||||
they're referring to, send me a patch to this comment. */
|
|
||||||
|
|
||||||
SCM_DEFINE (scm_nconc2last, "apply:nconc2last", 1, 0, 0,
|
|
||||||
(SCM lst),
|
|
||||||
"Given a list (@var{arg1} @dots{} @var{args}), this function\n"
|
|
||||||
"conses the @var{arg1} @dots{} arguments onto the front of\n"
|
|
||||||
"@var{args}, and returns the resulting list. Note that\n"
|
|
||||||
"@var{args} is a list; thus, the argument to this function is\n"
|
|
||||||
"a list whose last element is a list.\n"
|
|
||||||
"Note: Rather than do new consing, @code{apply:nconc2last}\n"
|
|
||||||
"destroys its argument, so use with care.")
|
|
||||||
#define FUNC_NAME s_scm_nconc2last
|
|
||||||
{
|
|
||||||
SCM *lloc;
|
|
||||||
SCM_VALIDATE_NONEMPTYLIST (1, lst);
|
|
||||||
lloc = &lst;
|
|
||||||
while (!scm_is_null (SCM_CDR (*lloc)))
|
|
||||||
lloc = SCM_CDRLOC (*lloc);
|
|
||||||
SCM_ASSERT (scm_ilength (SCM_CAR (*lloc)) >= 0, lst, SCM_ARG1, FUNC_NAME);
|
|
||||||
*lloc = SCM_CAR (*lloc);
|
|
||||||
return lst;
|
|
||||||
}
|
|
||||||
#undef FUNC_NAME
|
|
||||||
|
|
||||||
|
|
||||||
SCM
|
SCM
|
||||||
scm_map (SCM proc, SCM arg1, SCM args)
|
scm_map (SCM proc, SCM arg1, SCM args)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue