From ruby-talk-admin@ruby-lang.org Fri Dec 16 02:55:32 2005 Received: from kankan.nagaokaut.ac.jp (kankan.nagaokaut.ac.jp [133.44.2.24]) by blade.nagaokaut.ac.jp (8.12.3/8.12.3/Debian-6.6) with ESMTP id jBFHtWZk030273; Fri, 16 Dec 2005 02:55:32 +0900 Received: from funfun.nagaokaut.ac.jp (funfun.nagaokaut.ac.jp [133.44.2.201]) by kankan.nagaokaut.ac.jp (Postfix) with ESMTP id DD24B5A97; Fri, 16 Dec 2005 02:55:36 +0900 (JST) Received: from localhost (localhost.nagaokaut.ac.jp [127.0.0.1]) by funfun.nagaokaut.ac.jp (Postfix) with ESMTP id 00B6AF04842; Fri, 16 Dec 2005 02:55:37 +0900 (JST) Received: from voscc.nagaokaut.ac.jp (voscc.nagaokaut.ac.jp [133.44.1.100]) by funfun.nagaokaut.ac.jp (Postfix) with ESMTP id A4C49F04847; Fri, 16 Dec 2005 02:55:35 +0900 (JST) Received: from beryllium.ruby-lang.org (beryllium.ruby-lang.org [210.163.138.100]) by voscc.nagaokaut.ac.jp (Postfix) with ESMTP id B092A630028; Fri, 16 Dec 2005 02:55:35 +0900 (JST) Received: from beryllium.ruby-lang.org (beryllium.ruby-lang.org [127.0.0.1]) by beryllium.ruby-lang.org (Postfix) with ESMTP id 1F45433EA7; Fri, 16 Dec 2005 02:55:34 +0900 (JST) Received: from localhost (beryllium.ruby-lang.org [127.0.0.1]) by beryllium.ruby-lang.org (Postfix) with ESMTP id 2452233F09 for ; Fri, 16 Dec 2005 02:55:26 +0900 (JST) Received: from beryllium.ruby-lang.org ([127.0.0.1]) by localhost (beryllium.ruby-lang.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 16533-01 for ; Fri, 16 Dec 2005 02:55:26 +0900 (JST) Received: from mail.gmx.net (mail.gmx.de [213.165.64.21]) by beryllium.ruby-lang.org (Postfix) with SMTP id 1615733EA7 for ; Fri, 16 Dec 2005 02:55:24 +0900 (JST) Received: (qmail 10275 invoked by uid 0); 15 Dec 2005 17:55:19 -0000 Received: from 62.225.37.69 by www64.gmx.net with HTTP; Thu, 15 Dec 2005 18:55:19 +0100 (MET) Delivered-To: ruby-talk@ruby-lang.org Date: Fri, 16 Dec 2005 02:55:26 +0900 Posted: Thu, 15 Dec 2005 18:55:19 +0100 (MET) From: "Peter Ertl" Reply-To: ruby-talk@ruby-lang.org Subject: Re: Assigning a block to a variable in Ruby To: ruby-talk@ruby-lang.org (ruby-talk ML) Message-Id: <22980.1134669319@www64.gmx.net> References: <1134668659.523306.325210@g44g2000cwa.googlegroups.com> X-ML-Name: ruby-talk X-Mail-Count: 86 X-MLServer: fml [fml 4.0.3 release (20011202/4.0.3)]; post only (only members can post) X-ML-Info: If you have a question, send e-mail with the body "help" (without quotes) to the address ruby-talk-ctl@ruby-lang.org; help= X-Mailer: WWW-Mail 1.6 (Global Message Exchange) X-Original-To: ruby-talk@ruby-lang.org X-Priority: 3 (Normal) X-Authenticated: #8402114 X-Flags: 0001 X-Virus-Scanned: by amavisd-new-20030616-p10 (Debian) at ruby-lang.org X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on beryllium.ruby-lang.org X-Spam-Level: X-Spam-Status: No, score=-14.9 required=7.0 tests=AWL,BAYES_00,BLARS00, BLARS_SPAM00,CONTENT_TYPE_PRESENT,RCVDFRMLOCALIP,RCVD_IN_BLARS, RCVD_IN_BLARS_SPAM,RCVD_IN_BLARS_SPSPRT,X_MAILER_PRESENT autolearn=ham version=3.0.3 Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit Precedence: bulk Lines: 48 List-Id: ruby-talk.ruby-lang.org List-Software: fml [fml 4.0.3 release (20011202/4.0.3)] List-Post: List-Owner: List-Help: List-Unsubscribe: X-Virus-Scanned: by AMaViS snapshot-20020531 > Whereas in Javascript that would compile. there is no such thing as compilation in javascript or ruby... wikipedia: A compiler is a computer program that translates a series of statements written in one computer language (called the source code) into a resulting output in another computer language (often called the object or target language). > --- Ursprüngliche Nachricht --- > Von: ajmayo@my-deja.com > An: ruby-talk@ruby-lang.org (ruby-talk ML) > Betreff: Re: Assigning a block to a variable in Ruby > Datum: Fri, 16 Dec 2005 02:47:39 +0900 > > WRT forward references. My code was just > > foo(100) > > def foo(p) > puts p > end > > > this will not work unless the call to foo is placed after the function > definition. > > Whereas in Javascript that would compile. > > I can see that functions can forward reference, so I guess the logical > reason for this is, as you say, that Ruby wants to be able to resolve > as it executes, therefore > > p = proc {foo(100)} > > def foo(p) > puts p > end > > p.call > > > will also compile, although foo() is a forward reference, because we > don't attempt to execute the call to foo until after Ruby has parsed > the function > >