From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Daniel Llorens Newsgroups: gmane.lisp.guile.devel Subject: Re: vector types poll Date: Tue, 16 Apr 2013 02:16:19 +0200 Message-ID: References: <9D053760-46BC-46F1-B84D-07902E777FF2@bluewin.ch> <4A332BC6-A1C2-483F-BF6E-2C06D1C8AA68@bluewin.ch> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 (Apple Message framework v1085) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1366071388 6265 80.91.229.3 (16 Apr 2013 00:16:28 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 16 Apr 2013 00:16:28 +0000 (UTC) Cc: guile-devel To: Daniel Hartwig Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Tue Apr 16 02:16:29 2013 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1URtZT-0002az-16 for guile-devel@m.gmane.org; Tue, 16 Apr 2013 02:16:27 +0200 Original-Received: from localhost ([::1]:41225 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1URtZS-0003zr-H8 for guile-devel@m.gmane.org; Mon, 15 Apr 2013 20:16:26 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:60728) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1URtZP-0003zl-EV for guile-devel@gnu.org; Mon, 15 Apr 2013 20:16:24 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1URtZO-0005N3-5D for guile-devel@gnu.org; Mon, 15 Apr 2013 20:16:23 -0400 Original-Received: from zhbdzmsp-smta17.bluewin.ch ([195.186.99.133]:57064) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1URtZN-0005Mq-Um for guile-devel@gnu.org; Mon, 15 Apr 2013 20:16:22 -0400 Original-Received: from [195.186.227.131] ([195.186.227.131:46328] helo=zhhdzmsp-smta14.bluewin.ch) by zhbdzmsp-smta17.bluewin.ch (envelope-from ) (ecelerity 2.2.3.47 r(39824M)) with ESMTP id 17/2E-08134-4589C615; Tue, 16 Apr 2013 00:16:20 +0000 Original-Received: from [10.0.1.10] (62.202.121.169) by zhhdzmsp-smta14.bluewin.ch (8.5.142) (authenticated as dll@bluewin.ch) id 511CD83E05510783; Tue, 16 Apr 2013 00:16:20 +0000 In-Reply-To: X-Mailer: Apple Mail (2.1085) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 195.186.99.133 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:16255 Archived-At: On Apr 16, 2013, at 00:47, Daniel Hartwig wrote: > Is column [4] intentionally missing from all but the first set? I was > expecting it for atleast s8vector. I wasn't sure, but it makes sense. Then the same for bitvector, I think. = What about bytevector? Should it remain a special 'raw' type? But the = standards treat it like vector, so maybe it should follow the same = logic. And string? -- (import (rnrs bytevectors)) (define (every-two a) (make-shared-array a (lambda (i) (list (+ 1 (* 2 = i)))) 2)) (define (offset1 a) (make-shared-array a (lambda (i) (list (1- i))) `(1 = ,(array-length a)))) ; [1] = http://lists.gnu.org/archive/html/guile-devel/2013-04/msg00158.html ; [2] stable-2.0 [e006d87] ; [3] all array-type objects are actually arrays and support offsets, = strides, etc. ; [4] D. Hartwig and I may agree on this, follows functional definition = of r5rs vectors. ; -------------------------- [1] ------------ [2] --------- [3] ------ = [4] (define a #(1 2 3 4)) (define b (every-two a)) (define c (offset1 a)) (vector? a) ; #t #t #t = #t (vector? b) ; #f #f #t = #t (vector? c) ; #f #f #t = #f (vector-ref a 1) ; 2 2 2 2 (vector-ref b 1) ; bad type 4 4 4 (vector-ref c 1) ; bad type 2 1 = bad type (array-ref c 1) ; 1 (define a "1234") (define b (every-two a)) (define c (offset1 a)) (string? a) ; #t #t #t (string? b) ; #f #f #t (string? c) ; #f #f #t (string-ref a 1) ; #\2 #\2 #\2 (string-ref b 1) ; bad type bad type #\4 (string-ref c 1) ; bad type bad type #\1 (array-ref c 1) ; #\1 (define a #s8(1 2 3 4)) (define b (every-two a)) (define c (offset1 a)) (s8vector? a) ; #t #t #t = #t (s8vector? b) ; #f #t #t = #t (s8vector? c) ; #f #t #t = #f (s8vector-ref a 1) ; 2 2 2 2 (s8vector-ref b 1) ; bad type bad type 4 4 (s8vector-ref c 1) ; bad type bad type 1 = bad type (array-ref c 1) ; 1 (define a #s8(1 2 3 4)) (define b (every-two a)) (define c (offset1 a)) (bytevector? a) ; #t #t #t (bytevector? b) ; #f #f #t (bytevector? c) ; #f #f #t (bytevector-s8-ref a 1) ; 2 #\2 2 (bytevector-s8-ref b 1) ; bad type bad type 4 (bytevector-s8-ref c 1) ; bad type bad type 1 (array-ref c 1) ; 1 (define a (list->bitvector '(#t #f #t #t))) ; ad syntax for vectors is = broken (define b (every-two a)) (define c (offset1 a)) (bitvector? a) ; #t #t #t = #t (bitvector? b) ; #f #f #t = #t (bitvector? c) ; #f #f #t = #f (bitvector-ref a 1) ; #f #f #f = #f (bitvector-ref b 1) ; #t [bad type] #t #t = #t (bitvector-ref c 1) ; #f [bad type] #f #t = bad type (array-ref c 1) ; #t