From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Stephen J. Turnbull" Newsgroups: gmane.emacs.devel Subject: opaque data types Date: Sat, 08 Jun 2013 15:11:59 +0900 Message-ID: <8761xp9ln4.fsf@uwakimon.sk.tsukuba.ac.jp> References: <51AE71DB.8060005@yandex.ru> <87zjv41uer.fsf@lifelogs.com> <878v2oxwhr.fsf@lifelogs.com> <87r4gfa8nw.fsf@uwakimon.sk.tsukuba.ac.jp> <87fvwvwgg5.fsf@lifelogs.com> <87li6maa9r.fsf@uwakimon.sk.tsukuba.ac.jp> <87sj0uqdhm.fsf_-_@lifelogs.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 X-Trace: ger.gmane.org 1370671926 26663 80.91.229.3 (8 Jun 2013 06:12:06 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 8 Jun 2013 06:12:06 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Jun 08 08:12:05 2013 Return-path: Envelope-to: ged-emacs-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 1UlCNh-0002Nl-ED for ged-emacs-devel@m.gmane.org; Sat, 08 Jun 2013 08:12:05 +0200 Original-Received: from localhost ([::1]:38664 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UlCNg-0007SJ-Vk for ged-emacs-devel@m.gmane.org; Sat, 08 Jun 2013 02:12:04 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:47384) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UlCNe-0007SD-5A for emacs-devel@gnu.org; Sat, 08 Jun 2013 02:12:02 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UlCNd-0004qv-4N for emacs-devel@gnu.org; Sat, 08 Jun 2013 02:12:02 -0400 Original-Received: from mgmt2.sk.tsukuba.ac.jp ([130.158.97.224]:56558) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UlCNc-0004ql-QF for emacs-devel@gnu.org; Sat, 08 Jun 2013 02:12:01 -0400 Original-Received: from uwakimon.sk.tsukuba.ac.jp (uwakimon.sk.tsukuba.ac.jp [130.158.99.156]) by mgmt2.sk.tsukuba.ac.jp (Postfix) with ESMTP id F1906970989 for ; Sat, 8 Jun 2013 15:11:59 +0900 (JST) Original-Received: by uwakimon.sk.tsukuba.ac.jp (Postfix, from userid 1000) id B69061A2721; Sat, 8 Jun 2013 15:11:59 +0900 (JST) In-Reply-To: <87sj0uqdhm.fsf_-_@lifelogs.com> X-Mailer: VM undefined under 21.5 (beta32) "habanero" b0d40183ac79 XEmacs Lucid (x86_64-unknown-linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 130.158.97.224 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:160262 Archived-At: Ted Zlatanov writes: > Generally, I love how Lisp balances readability, accessibility, and > power by limiting itself to data structures that are not opaque. The > exceptions to that rule are the interesting edge cases :) You mean exceptions like plists? > (By contrast, Java > On Fri, 07 Jun 2013 12:07:44 +0900 "Stephen J. Turnbull" wrote: ou > makes data structures and objects impenetrable by > default and requires nasty tricks to get introspection. Introspection is a question of API design. The Lisp that you love is a trivial design. There's one data structure: the cons. Introspection is provided by the access functions and the repl. On the other hand, you seem to like hash tables. How do you introspect the number of buckets and the hash function in Emacs? Another example: XEmacs takes you half-way there. It displays the number of buckets in the un(read)able print representation.