documentation_emacs/source/lispref/hash.texi.fr.po
2022-03-08 11:11:57 +01:00

986 lines
34 KiB
Plaintext

# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR Free Software Foundation, Inc.
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2021-11-07 12:11+0900\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. type: chapter
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:5 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/lispref/hash.texi:6
#, no-wrap
msgid "Hash Tables"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:7
#, no-wrap
msgid "hash tables"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:8
#, no-wrap
msgid "lookup tables"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:13
msgid ""
"A hash table is a very fast kind of lookup table, somewhat like an alist "
"(@pxref{Association Lists}) in that it maps keys to corresponding values. "
"It differs from an alist in these ways:"
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:21
msgid ""
"Lookup in a hash table is extremely fast for large tables---in fact, the "
"time required is essentially @emph{independent} of how many elements are "
"stored in the table. For smaller tables (a few tens of elements) alists "
"may still be faster because hash tables have a more-or-less constant "
"overhead."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:24
msgid "The correspondences in a hash table are in no particular order."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:28
msgid ""
"There is no way to share structure between two hash tables, the way two "
"alists can share a common tail."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:38
msgid ""
"Emacs Lisp provides a general-purpose hash table data type, along with a "
"series of functions for operating on them. Hash tables have a special "
"printed representation, which consists of @samp{#s} followed by a list "
"specifying the hash table properties and contents. @xref{Creating Hash}. "
"(Hash notation, the initial @samp{#} character used in the printed "
"representations of objects with no read representation, has nothing to do "
"with hash tables. @xref{Printed Representation}.)"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:42
msgid ""
"Obarrays are also a kind of hash table, but they are a different type of "
"object and are used only for recording interned symbols (@pxref{Creating "
"Symbols})."
msgstr ""
#. type: node
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:48 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/lispref/hash.texi:50
#, no-wrap
msgid "Creating Hash"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:48
msgid "Functions to create hash tables."
msgstr ""
#. type: node
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:48 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/lispref/hash.texi:187
#, no-wrap
msgid "Hash Access"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:48
msgid "Reading and writing the hash table contents."
msgstr ""
#. type: node
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:48 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/lispref/hash.texi:236
#, no-wrap
msgid "Defining Hash"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:48
msgid "Defining new comparison methods."
msgstr ""
#. type: node
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:48 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/lispref/hash.texi:351
#, no-wrap
msgid "Other Hash"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:48
msgid "Miscellaneous."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:51
#, no-wrap
msgid "Creating Hash Tables"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:52
#, no-wrap
msgid "creating hash tables"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:56
msgid "The principal function for creating a hash table is @code{make-hash-table}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:57
#, no-wrap
msgid "make-hash-table &rest keyword-args"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:62
msgid ""
"This function creates a new hash table according to the specified "
"arguments. The arguments should consist of alternating keywords (particular "
"symbols recognized specially) and values corresponding to them."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:65
msgid ""
"Several keywords make sense in @code{make-hash-table}, but the only two that "
"you really need to know about are @code{:test} and @code{:weakness}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:67
#, no-wrap
msgid ":test @var{test}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:71
msgid ""
"This specifies the method of key lookup for this hash table. The default is "
"@code{eql}; @code{eq} and @code{equal} are other alternatives:"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:73
#, no-wrap
msgid "eql"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:78
msgid ""
"Keys which are numbers are the same if they are @code{equal}, that is, if "
"they are equal in value and either both are integers or both are floating "
"point; otherwise, two distinct objects are never the same."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:79
#, no-wrap
msgid "eq"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:81
msgid "Any two distinct Lisp objects are different as keys."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:82
#, no-wrap
msgid "equal"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:85
msgid ""
"Two Lisp objects are the same, as keys, if they are equal according to "
"@code{equal}."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:89
msgid ""
"You can use @code{define-hash-table-test} (@pxref{Defining Hash}) to define "
"additional possibilities for @var{test}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:90
#, no-wrap
msgid ":weakness @var{weak}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:93
msgid ""
"The weakness of a hash table specifies whether the presence of a key or "
"value in the hash table preserves it from garbage collection."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:101
msgid ""
"The value, @var{weak}, must be one of @code{nil}, @code{key}, @code{value}, "
"@code{key-or-value}, @code{key-and-value}, or @code{t} which is an alias for "
"@code{key-and-value}. If @var{weak} is @code{key} then the hash table does "
"not prevent its keys from being collected as garbage (if they are not "
"referenced anywhere else); if a particular key does get collected, the "
"corresponding association is removed from the hash table."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:106
msgid ""
"If @var{weak} is @code{value}, then the hash table does not prevent values "
"from being collected as garbage (if they are not referenced anywhere else); "
"if a particular value does get collected, the corresponding association is "
"removed from the hash table."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:112
msgid ""
"If @var{weak} is @code{key-and-value} or @code{t}, both the key and the "
"value must be live in order to preserve the association. Thus, the hash "
"table does not protect either keys or values from garbage collection; if "
"either one is collected as garbage, that removes the association."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:117
msgid ""
"If @var{weak} is @code{key-or-value}, either the key or the value can "
"preserve the association. Thus, associations are removed from the hash "
"table when both their key and value would be collected as garbage (if not "
"for references from weak hash tables)."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:120
msgid ""
"The default for @var{weak} is @code{nil}, so that all keys and values "
"referenced in the hash table are preserved from garbage collection."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:121
#, no-wrap
msgid ":size @var{size}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:127
msgid ""
"This specifies a hint for how many associations you plan to store in the "
"hash table. If you know the approximate number, you can make things a "
"little more efficient by specifying it this way. If you specify too small a "
"size, the hash table will grow automatically when necessary, but doing that "
"takes some extra time."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:129
msgid "The default size is 65."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:130
#, no-wrap
msgid ":rehash-size @var{rehash-size}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:134
msgid ""
"When you add an association to a hash table and the table is full, it grows "
"automatically. This value specifies how to make the hash table larger, at "
"that time."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:140
msgid ""
"If @var{rehash-size} is an integer, it should be positive, and the hash "
"table grows by adding approximately that much to the nominal size. If "
"@var{rehash-size} is floating point, it had better be greater than 1, and "
"the hash table grows by multiplying the old size by approximately that "
"number."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:142
msgid "The default value is 1.5."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:143
#, no-wrap
msgid ":rehash-threshold @var{threshold}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:150
msgid ""
"This specifies the criterion for when the hash table is full (so it should "
"be made larger). The value, @var{threshold}, should be a positive "
"floating-point number, no greater than 1. The hash table is full whenever "
"the actual number of entries exceeds the nominal size multiplied by an "
"approximation to this value. The default for @var{threshold} is 0.8125."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:160
msgid ""
"You can also create a hash table using the printed representation for hash "
"tables. The Lisp reader can read this printed representation, provided each "
"element in the specified hash table has a valid read syntax (@pxref{Printed "
"Representation}). For instance, the following specifies a hash table "
"containing the keys @code{key1} and @code{key2} (both symbols) associated "
"with @code{val1} (a symbol) and @code{300} (a number) respectively."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:163
#, no-wrap
msgid "#s(hash-table size 30 data (key1 val1 key2 300))\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:169
msgid ""
"Note, however, that when using this in Emacs Lisp code, it's undefined "
"whether this creates a new hash table or not. If you want to create a new "
"hash table, you should always use @code{make-hash-table} "
"(@pxref{Self-Evaluating Forms})."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:182
msgid ""
"The printed representation for a hash table consists of @samp{#s} followed "
"by a list beginning with @samp{hash-table}. The rest of the list should "
"consist of zero or more property-value pairs specifying the hash table's "
"properties and initial contents. The properties and values are read "
"literally. Valid property names are @code{size}, @code{test}, "
"@code{weakness}, @code{rehash-size}, @code{rehash-threshold}, and "
"@code{data}. The @code{data} property should be a list of key-value pairs "
"for the initial contents; the other properties have the same meanings as the "
"matching @code{make-hash-table} keywords (@code{:size}, @code{:test}, etc.), "
"described above."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:186
msgid ""
"Note that you cannot specify a hash table whose initial contents include "
"objects that have no read syntax, such as buffers and frames. Such objects "
"may be added to the hash table after it is created."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:188
#, no-wrap
msgid "Hash Table Access"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:189
#, no-wrap
msgid "accessing hash tables"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:190
#, no-wrap
msgid "hash table access"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:196
msgid ""
"This section describes the functions for accessing and storing associations "
"in a hash table. In general, any Lisp object can be used as a hash key, "
"unless the comparison method imposes limits. Any Lisp object can also be "
"used as the value."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:197
#, no-wrap
msgid "gethash key table &optional default"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:201
msgid ""
"This function looks up @var{key} in @var{table}, and returns its associated "
"@var{value}---or @var{default}, if @var{key} has no association in "
"@var{table}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:203
#, no-wrap
msgid "puthash key value table"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:207
msgid ""
"This function enters an association for @var{key} in @var{table}, with value "
"@var{value}. If @var{key} already has an association in @var{table}, "
"@var{value} replaces the old associated value."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:209
#, no-wrap
msgid "remhash key table"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:213
msgid ""
"This function removes the association for @var{key} from @var{table}, if "
"there is one. If @var{key} has no association, @code{remhash} does nothing."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:217
msgid ""
"@b{Common Lisp note:} In Common Lisp, @code{remhash} returns non-@code{nil} "
"if it actually removed an association and @code{nil} otherwise. In Emacs "
"Lisp, @code{remhash} always returns @code{nil}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:219
#, no-wrap
msgid "clrhash table"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:223
msgid ""
"This function removes all the associations from hash table @var{table}, so "
"that it becomes empty. This is also called @dfn{clearing} the hash table."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:226
msgid ""
"@b{Common Lisp note:} In Common Lisp, @code{clrhash} returns the empty "
"@var{table}. In Emacs Lisp, it returns @code{nil}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:228
#, no-wrap
msgid "maphash function table"
msgstr ""
#. type: anchor{#1}
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:234
msgid "Definition of maphash"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:234
msgid ""
"This function calls @var{function} once for each of the associations in "
"@var{table}. The function @var{function} should accept two arguments---a "
"@var{key} listed in @var{table}, and its associated @var{value}. "
"@code{maphash} returns @code{nil}."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:237
#, no-wrap
msgid "Defining Hash Comparisons"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:238
#, no-wrap
msgid "hash code"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:239
#, no-wrap
msgid "define hash comparisons"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:244
msgid ""
"You can define new methods of key lookup by means of "
"@code{define-hash-table-test}. In order to use this feature, you need to "
"understand how hash tables work, and what a @dfn{hash code} means."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:251
msgid ""
"You can think of a hash table conceptually as a large array of many slots, "
"each capable of holding one association. To look up a key, @code{gethash} "
"first computes an integer, the hash code, from the key. It can reduce this "
"integer modulo the length of the array, to produce an index in the array. "
"Then it looks in that slot, and if necessary in other nearby slots, to see "
"if it has found the key being sought."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:260
msgid ""
"Thus, to define a new method of key lookup, you need to specify both a "
"function to compute the hash code from a key, and a function to compare two "
"keys directly. The two functions should be consistent with each other: that "
"is, two keys' hash codes should be the same if the keys compare as equal. "
"Also, since the two functions can be called at any time (such as by the "
"garbage collector), the functions should be free of side effects and should "
"return quickly, and their behavior should depend on only on properties of "
"the keys that do not change."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:261
#, no-wrap
msgid "define-hash-table-test name test-fn hash-fn"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:263
msgid "This function defines a new hash table test, named @var{name}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:268
msgid ""
"After defining @var{name} in this way, you can use it as the @var{test} "
"argument in @code{make-hash-table}. When you do that, the hash table will "
"use @var{test-fn} to compare key values, and @var{hash-fn} to compute a hash "
"code from a key value."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:271
msgid ""
"The function @var{test-fn} should accept two arguments, two keys, and return "
"non-@code{nil} if they are considered the same."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:276
msgid ""
"The function @var{hash-fn} should accept one argument, a key, and return an "
"integer that is the hash code of that key. For good results, the function "
"should use the whole range of fixnums for hash codes, including negative "
"fixnums."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:280
msgid ""
"The specified functions are stored in the property list of @var{name} under "
"the property @code{hash-table-test}; the property value's form is "
"@code{(@var{test-fn} @var{hash-fn})}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:282
#, no-wrap
msgid "sxhash-equal obj"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:286
msgid ""
"This function returns a hash code for Lisp object @var{obj}. This is an "
"integer that reflects the contents of @var{obj} and the other Lisp objects "
"it points to."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:290
msgid ""
"If two objects @var{obj1} and @var{obj2} are @code{equal}, then "
"@code{(sxhash-equal @var{obj1})} and @code{(sxhash-equal @var{obj2})} are "
"the same integer."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:295
msgid ""
"If the two objects are not @code{equal}, the values returned by "
"@code{sxhash-equal} are usually different, but not always; once in a rare "
"while, by luck, you will encounter two distinct-looking objects that give "
"the same result from @code{sxhash-equal}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:299
msgid ""
"@b{Common Lisp note:} In Common Lisp a similar function is called "
"@code{sxhash}. Emacs provides this name as a compatibility alias for "
"@code{sxhash-equal}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:301
#, no-wrap
msgid "sxhash-eq obj"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:304
msgid ""
"This function returns a hash code for Lisp object @var{obj}. Its result "
"reflects identity of @var{obj}, but not its contents."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:308
msgid ""
"If two objects @var{obj1} and @var{obj2} are @code{eq}, then "
"@code{(sxhash-eq @var{obj1})} and @code{(sxhash-eq @var{obj2})} are the same "
"integer."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:310
#, no-wrap
msgid "sxhash-eql obj"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:315
msgid ""
"This function returns a hash code for Lisp object @var{obj} suitable for "
"@code{eql} comparison. I.e. it reflects identity of @var{obj} except for "
"the case where the object is a bignum or a float number, in which case a "
"hash code is generated for the value."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:319
msgid ""
"If two objects @var{obj1} and @var{obj2} are @code{eql}, then "
"@code{(sxhash-eql @var{obj1})} and @code{(sxhash-eql @var{obj2})} are the "
"same integer."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:323
msgid ""
"This example creates a hash table whose keys are strings that are compared "
"case-insensitively."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:329
#, no-wrap
msgid ""
"(defun case-fold-string= (a b)\n"
" (eq t (compare-strings a nil nil b nil nil t)))\n"
"(defun case-fold-string-hash (a)\n"
" (sxhash-equal (upcase a)))\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:332
#, no-wrap
msgid ""
"(define-hash-table-test 'case-fold\n"
" 'case-fold-string= 'case-fold-string-hash)\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:334
#, no-wrap
msgid "(make-hash-table :test 'case-fold)\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:339
msgid ""
"Here is how you could define a hash table test equivalent to the predefined "
"test value @code{equal}. The keys can be any Lisp object, and equal-looking "
"objects are considered the same key."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:342
#, no-wrap
msgid ""
"(define-hash-table-test 'contents-hash 'equal 'sxhash-equal)\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:344
#, no-wrap
msgid "(make-hash-table :test 'contents-hash)\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:350
msgid ""
"Lisp programs should @emph{not} rely on hash codes being preserved between "
"Emacs sessions, as the implementation of the hash functions uses some "
"details of the object storage that can change between sessions and between "
"different architectures."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:352
#, no-wrap
msgid "Other Hash Table Functions"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:355
msgid "Here are some other functions for working with hash tables."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:356
#, no-wrap
msgid "hash-table-p table"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:358
msgid "This returns non-@code{nil} if @var{table} is a hash table object."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:360
#, no-wrap
msgid "copy-hash-table table"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:363
msgid ""
"This function creates and returns a copy of @var{table}. Only the table "
"itself is copied---the keys and values are shared."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:365
#, no-wrap
msgid "hash-table-count table"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:367
msgid "This function returns the actual number of entries in @var{table}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:369
#, no-wrap
msgid "hash-table-test table"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:373
msgid ""
"This returns the @var{test} value that was given when @var{table} was "
"created, to specify how to hash and compare keys. See "
"@code{make-hash-table} (@pxref{Creating Hash})."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:375
#, no-wrap
msgid "hash-table-weakness table"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:378
msgid ""
"This function returns the @var{weak} value that was specified for hash table "
"@var{table}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:380
#, no-wrap
msgid "hash-table-rehash-size table"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:382
msgid "This returns the rehash size of @var{table}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:384
#, no-wrap
msgid "hash-table-rehash-threshold table"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:386
msgid "This returns the rehash threshold of @var{table}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:388
#, no-wrap
msgid "hash-table-size table"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/lispref/hash.texi:390
msgid "This returns the current nominal size of @var{table}."
msgstr ""