1. dico_leque

    SRFI-146について追記

    dico_leque
Changes in body
Source | HTML | Preview
@@ -4,11 +4,11 @@
<dl>
<dt>Common Lisp:</dt>
<dd>hash-table</dd>
<dt>Scheme:</dt>
-<dd>hash-table (SRFI-69, SRFI-125 → R7RS-large), hashtable (R6RS Scheme, SRFI-126), map (SRFI-44)</dd>
+<dd>hash-table (SRFI-69, SRFI-125 → R7RS-large), hashtable (R6RS Scheme, SRFI-126), map (SRFI-44), mapping (SRFI-146)</dd>
<dt>Haskell:</dt>
<dd>Map</dd>
<dt>OCaml:</dt>
<dd>Hashtbl, Map</dd>
<dt>SML:</dt>
@@ -39,10 +39,12 @@
---
Scheme の [SRFI-44](http://srfi.schemers.org/srfi-44/srfi-44.html#futurework) では M:1 のもの(<var>M</var> 個のキーをそれぞれ1つの値に対応づける)を map と呼び、 M:N のもの(<var>M</var> 個のキーをそれぞれ複数個の値に対応づける)を dictionary と呼んでいる。
+[SRFI-146](https://srfi.schemers.org/srfi-146/srfi-146.html) では高階関数の `map` との[名前の衝突を嫌い](https://srfi-email.schemers.org/srfi-146/msg/4849431) map ではなく mapping という名前を採用している(Schemeでは手続きの名前を データ型-操作 の形式で付ける慣習があるため、 map データ型に対する map 操作は `map-map` という名前になってしまう)。
+
---
ちなみに、『プログラミング Perl 改訂版』(Larry Wall, Tom Christiansen, Randal L. Schwartz 共著、近藤嘉雪訳、オライリー・ジャパン、 1997) p.8 ではhashという名前の由来について以下のように解説している:
> そのためハッシュは「連想配列」(associative array)と呼ばれることもある。しかし、これは怠惰なタイピストにとってタイプするのが面倒だし、頻繁に使われるので、私たちはもっと短かくて、ぴりっとした(snappy)呼び名を付けることにしたのだ。「ハッシュ」という名前を選んだ別の理由は、中身が順番付けされていないことを強調するためである(ハッシュは、内部的にはハッシュ表を使って実装されている。ハッシュに値をどんなにたくさん格納しても、動作が速いのは、ハッシュ表のおかげである)。