From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10087 invoked by alias); 22 Oct 2015 15:50:41 -0000 Mailing-List: contact zsh-users-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Users List List-Post: List-Help: X-Seq: 20811 Received: (qmail 20600 invoked from network); 22 Oct 2015 15:50:40 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1445528613; bh=zMK1qaMzQ9rJBcBdg9aqqwltfZCwlj3+VVqodTLeInI=; h=From:To:In-Reply-To:References:Subject:Date; b=ehYQ+V04XP+bL8u6xGIMIsjtPiJmWMcALDq9MR3zZ0Ei49G/nPTmxSR4P4Dq7AdKq 99L84gmkBxkdr/g9wPyyfIoo5ef/m7fk8D0Ih8Omr2ycQYRZbHWAfJ18XZg9fKk9CZ TFRy7WQFXJFjvZhJF9sl2LlIPbeWdHmjQgcFjK3g= From: ZyX To: Ray Andrews , "zsh-users@zsh.org" In-Reply-To: <562900EF.8090509@eastlink.ca> References: <562483C9.1060602@eastlink.ca> <151019113517.ZM32739@torch.brasslantern.com> <562545DD.5020008@eastlink.ca> <151019172744.ZM558@torch.brasslantern.com> <5627D2F8.3000004@eastlink.ca> <970471445453032@web1h.yandex.ru> <562900EF.8090509@eastlink.ca> Subject: Re: suprise with -= MIME-Version: 1.0 Message-Id: <2128161445528612@web30m.yandex.ru> X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Thu, 22 Oct 2015 18:43:32 +0300 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=utf-8 22.10.2015, 18:31, "Ray Andrews" : > On 10/21/2015 11:43 AM, ZyX wrote: > >>  and at the time of *execution* you evaluate `first+second` as an >>  expression. > > Ok, I think I begin to see where I'm going wrong. I'm extending > 'parsing' in my head into what only happens at execution. Another > difference between a compiled language vs. an interpreted one. I guess > parsing, in an interpreted language, is strictly speaking a much simple > matter. At run time more work is done. Thanks. It is not always wrong, BTW. E.g. VimL has no “parsing” stage, it always directly *executes* the input string, doing any parsing in process. This is why e.g. when calling :let var=[system("echo bar>baz"), file `baz` will appear, but `var` will not get assigned due to parsing error: VimL executor does not see absense of `]` at the time it is executing `system()` call. Also meaning of :echo var.val depends on `var` variable type (it may either be `var . val` (string concat) or `var['val']` (dictionary index)). Though I know no language implementations other then VimL (and, maybe, tcsh: have not actually seen its source code, but it looks like it is also executed in-place) that do not have the parsing stage.