From ruby-talk-admin@ruby-lang.org Fri Dec 16 02:49:18 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 jBFHnIZk030091; Fri, 16 Dec 2005 02:49:18 +0900 Received: from funfun.nagaokaut.ac.jp (funfun.nagaokaut.ac.jp [133.44.2.201]) by kankan.nagaokaut.ac.jp (Postfix) with ESMTP id 869595A57; Fri, 16 Dec 2005 02:49:23 +0900 (JST) Received: from localhost (localhost.nagaokaut.ac.jp [127.0.0.1]) by funfun.nagaokaut.ac.jp (Postfix) with ESMTP id 99AC4F04866; Fri, 16 Dec 2005 02:49:23 +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 4A2A7F04850; Fri, 16 Dec 2005 02:49:22 +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 4780563002C; Fri, 16 Dec 2005 02:49:22 +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 5B9F533A28; Fri, 16 Dec 2005 02:49:21 +0900 (JST) Received: from localhost (beryllium.ruby-lang.org [127.0.0.1]) by beryllium.ruby-lang.org (Postfix) with ESMTP id 52B1533DD6 for ; Fri, 16 Dec 2005 02:47:39 +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 14991-05 for ; Fri, 16 Dec 2005 02:47:39 +0900 (JST) Received: from sinus.lauschmusik.de (sinus.lauschmusik.de [213.95.32.201]) by beryllium.ruby-lang.org (Postfix) with ESMTP id DA2C033A28 for ; Fri, 16 Dec 2005 02:47:38 +0900 (JST) Received: from localhost ([127.0.0.1] helo=localhost.localdomain) by sinus.lauschmusik.de with esmtp (Exim 4.50) id 1EmxA5-0004lb-0x for ruby-talk@ruby-lang.org; Thu, 15 Dec 2005 18:45:01 +0100 Received: from g44g2000cwa.googlegroups.com (g44g2000cwa.googlegroups.com) by sinus.lauschmusik.de with NTTP id 166246 for ; Thu Dec 15 18:45:00 CET 2005 Received: from [217.206.116.210] by g44g2000cwa.googlegroups.com (unknown) with NNTP id 166246 for ; Thu Dec 15 18:45:00 CET 2005 Received: from Usenet via a Usenet to mail gateway located at lauschmusik.de. This service provided as a courtesy to the ruby-talk mailing list. If this message is SPAM, its ultimate origin is Usenet, not this gateway program. All subscribers to the ruby-talk mailing list agree to receive the Usenet postings made to comp.lang.ruby via this gateway. Please see http://www.ruby-lang.org/ruby-talk-usenet-policy.html. Delivered-To: ruby-talk@ruby-lang.org Date: Fri, 16 Dec 2005 02:47:39 +0900 Posted: 15 Dec 2005 09:44:19 -0800 From: ajmayo@my-deja.com 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: <1134668659.523306.325210@g44g2000cwa.googlegroups.com> In-Reply-To: References: <1134665773.927049.245200@z14g2000cwz.googlegroups.com> X-ML-Name: ruby-talk X-Mail-Count: 82 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= User-Agent: G2/0.2 X-Original-To: ruby-talk@ruby-lang.org Path: noris.net!news.osn.de!diablo1-ffm.news.osn.de!newsfeed.kamp.net!nx01.iad01.newshosting.com!newshosting.com!216.196.98.140.MISMATCH!border1.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!g44g2000cwa.googlegroups.com!not-for-mail Newsgroups: comp.lang.ruby Organization: http://groups.google.com NNTP-Posting-Host: 217.206.116.210 X-Trace: posting.google.com 1134668664 8884 127.0.0.1 (15 Dec 2005 17:44:24 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Thu, 15 Dec 2005 17:44:24 +0000 (UTC) X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20051111 Firefox/1.5,gzip(gfe),gzip(gfe) Complaints-To: groups-abuse@google.com Injection-Info: g44g2000cwa.googlegroups.com; posting-host=217.206.116.210; posting-account=adTdjQwAAADKqKsPV5nvjlhw90gy8QGa X-From-Usenet: see Received: header above. X-rubymirror: yes 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=-5.7 required=7.0 tests=BAYES_00, CONTENT_TYPE_PRESENT,MSGID_FROM_MTA_HEADER,NO_REAL_NAME,QENCPTR1, RCVDFRMLOCALIP autolearn=no version=3.0.3 Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Precedence: bulk Lines: 31 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 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