From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from aibo.runbox.com (aibo.runbox.com [91.220.196.211]) by sourceware.org (Postfix) with ESMTPS id A2BFF3857036 for ; Wed, 16 Dec 2020 10:59:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org A2BFF3857036 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=bothner.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=per@bothner.com Received: from [10.9.9.74] (helo=submission03.runbox) by mailtransmit03.runbox with esmtp (Exim 4.86_2) (envelope-from ) id 1kpUWW-0004Zd-2I; Wed, 16 Dec 2020 11:59:12 +0100 Received: by submission03.runbox with esmtpsa [Authenticated alias (524175)] (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) id 1kpUWP-0001Oh-1x; Wed, 16 Dec 2020 11:59:05 +0100 Subject: Re: Disambiguate method from function To: Duncan Mak , kawa mailing list References: From: Per Bothner Message-ID: <2935bf5c-b1cb-59e9-7b88-98434db6f10e@bothner.com> Date: Wed, 16 Dec 2020 02:59:01 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, NICE_REPLY_A, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: kawa@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Kawa mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Dec 2020 10:59:16 -0000 On 12/16/20 12:49 AM, Duncan Mak via Kawa wrote: > This doesn't work because I think it gets confused between hello the method > and hello the function: > > test.scm:3:4: call to 'hello' has too many arguments (1; must be 0) > > > I could of course resolve this by renaming 'hello' the function to > something like 'hello*', but is there another way to disambiguate the two? Nothing I can think of to explicitly disambiguate. (I tried some.) I suggest using an alias: (define-simple-class Person () ((hello) (%hello "Calling from method"))) (define (hello message) (format #t "~A~%" message)) (define-alias %hello hello) (hello "Calling from function") ((Person):hello) -- --Per Bothner per@bothner.com http://per.bothner.com/