From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Maciek Godek" Newsgroups: gmane.lisp.guile.user Subject: Re: References/locations Date: Fri, 15 Aug 2008 11:35:26 +0200 Message-ID: References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1218793017 13659 80.91.229.12 (15 Aug 2008 09:36:57 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 15 Aug 2008 09:36:57 +0000 (UTC) To: guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Fri Aug 15 11:37:49 2008 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1KTvkg-0004Rx-CD for guile-user@m.gmane.org; Fri, 15 Aug 2008 11:37:46 +0200 Original-Received: from localhost ([127.0.0.1]:34779 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KTvjj-0006Zn-MQ for guile-user@m.gmane.org; Fri, 15 Aug 2008 05:36:47 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KTviV-0006Ak-4C for guile-user@gnu.org; Fri, 15 Aug 2008 05:35:31 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KTviT-00069s-0p for guile-user@gnu.org; Fri, 15 Aug 2008 05:35:30 -0400 Original-Received: from [199.232.76.173] (port=49068 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KTviS-00069l-PB for guile-user@gnu.org; Fri, 15 Aug 2008 05:35:28 -0400 Original-Received: from wf-out-1314.google.com ([209.85.200.173]:21892) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KTviS-0002C0-7T for guile-user@gnu.org; Fri, 15 Aug 2008 05:35:28 -0400 Original-Received: by wf-out-1314.google.com with SMTP id 28so869750wfc.24 for ; Fri, 15 Aug 2008 02:35:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=bI4TEZrTCkIKLs2CMi/hG/K8WgpcKAgzq2+EEiYbMso=; b=TZLbGKMc3cMXsGicIO8muCfjWIUmgwTnU8T0hiNmZoD5B3OGEOU0+XKeiFaM9ord+w ycXYqY6YMxcgAX9W67NwaJPOqVqia7+3zYea22B4Gci9xa9Q+XkM+IW1VsmaUm+FFD29 v0UngKRqj3YWnIgemvyrgZ9g7mrApnksQg2N0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=oBnTNjrEkcYoytzfFwnm2h+/wtEylT4AvJl40Yr7YGln47hU2TJM20u2qZaRrLehGL VRmh2iDWQyZ0hixSmaWc982cnipO2TU6mpHxRHroB7OOMz1fiLMOYHbCdnnei1ifWyw8 wX8zobj5Er0fvEoZa9MYAw+BqVAMAyx0yAEbY= Original-Received: by 10.142.177.7 with SMTP id z7mr910659wfe.88.1218792926533; Fri, 15 Aug 2008 02:35:26 -0700 (PDT) Original-Received: by 10.142.164.4 with HTTP; Fri, 15 Aug 2008 02:35:26 -0700 (PDT) In-Reply-To: Content-Disposition: inline X-detected-kernel: by monty-python.gnu.org: Linux 2.6 (newer, 2) X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.user:6748 Archived-At: Stephen Compall: > Actually, if you (use-syntax (ice-9 syncase)), you should be able to > define lexical symbol-macros that expand a single symbol, even in a > set! place, something like: > > (define v #(1 2 3)) > (define-syntax v1 > (lambda (stx) > (syntax-case stx () > (_ v)))) I don't really get this syntax-rules. Do you know of any good tutorial? [I find the description in the revised report too difficult to understand] > Obviously aliasing will serve: > > (define-syntax alias-syntax > (syntax-rules () > ((_ form) > (lambda (stx) > (syntax-case stx () > (_ (syntax form))))))) > > (define-syntax defalias > (syntax-rules stx () > ((_ new form) > (define-syntax new (alias-syntax form))))) ERROR: invalid syntax (syntax-rules stx () ((_ new form) (define-syntax new (alias-syntax form)))) => error-in-evaluation (That's what guile says) > (define-syntax let-alias > (syntax-rules () > ((_ ((new form) ...) body ...) > (let-syntax ((new (alias-syntax form)) ...) body ...)))) > > (defalias v1 (vector-ref v 1)) > > (set! v1 42) > (vector-ref v 1) ; => 42 Could you explain it in more detail? Why should it work? (Or at least give me a link with such explanations) Thanks in advance M.