From: Meino Christian Cramer <Meino.Cramer@gmx.de>
To: schaefer@brasslantern.com
Cc: zsh-users@sunsite.dk
Subject: Re: Function definitions
Date: Mon, 06 Jun 2005 17:37:29 +0200 (CEST) [thread overview]
Message-ID: <20050606.173729.74747423.Meino.Cramer@gmx.de> (raw)
In-Reply-To: <1050606041449.ZM21454@candle.brasslantern.com>
From: Bart Schaefer <schaefer@brasslantern.com>
Subject: Re: Function definitions
Date: Mon, 06 Jun 2005 04:14:49 +0000
Hi Bart !
THANKS a LOT for that enlightment ! :)
Far better than what I saw (but not understood in that extent as you
have explained it!!!).
With "I found nothing appropiate" I meant exactly this!
I _saw_ words from that context...but...I _understood_ what Bart
wrotes!!!
:O)
Keep zshing! (<<- that words reminds me of the sound of opening a
bottle fresh beer...;)
Meino
> On Jun 6, 5:23am, Meino Christian Cramer wrote:
> >
> > Is there any difference in defining functions like
>
> In zsh there is no difference whether you use the "function" keyword or
> not, but in ksh the variable scoping rules are different for definitions
> that use it. So be careful if you have any intention of porting.
>
> I prefer to use "function" because it avoids problems with function and
> alias names clashing.
>
> However:
>
> > function fnord(){
> > fnord(){
>
> Those two are OK and do what you expect, but you should get used to
> putting spaces before the empty parens and before the open-brace, because
> even though zsh does not always enforce it, the grammar does say that the
> spaces should be there, and it's crucial to this next example:
>
> > function fnord{
>
> That defines a function named "fnord{" whose body will consist of the next
> single command seen (*not* up to a matching close-brace). If you add a
> space ...
>
> function fnord {
>
> ... then *that* does what you meant.
>
> > fnord{
>
> This is a *call* to the function named "fnord{". Even with a space ...
>
> fnord {
>
> ... is not a definition, it's a *call* to the "fnord" function with the
> argument "{". You must have either the keyword "function" or the empty
> parens to make a definition. I believe using both is a syntax error in
> ksh, although zsh allows it.
>
> > (In 'man zshall' I found nothing appropiate...)
>
> In the COMPLEX COMMANDS section:
>
> function word ... [ () ] [ term ] { list }
> word ... () [ term ] { list }
> word ... () [ term ] command
> where term is one or more newline or ;. Define a function
> which is referenced by any one of word.
>
prev parent reply other threads:[~2005-06-06 15:37 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-06 3:23 Meino Christian Cramer
2005-06-06 4:14 ` Bart Schaefer
2005-06-06 15:37 ` Meino Christian Cramer [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050606.173729.74747423.Meino.Cramer@gmx.de \
--to=meino.cramer@gmx.de \
--cc=schaefer@brasslantern.com \
--cc=zsh-users@sunsite.dk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).