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

10700 lines
387 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: titlefont{#1}
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:34
#, no-wrap
msgid "Common Lisp Extensions"
msgstr ""
#. type: include
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4
#, no-wrap
msgid "docstyle.texi"
msgstr ""
#. type: include
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5
#, no-wrap
msgid "emacsver.texi"
msgstr ""
#. type: copying
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:9
msgid "This file documents the GNU Emacs Common Lisp emulation package."
msgstr ""
#. type: copying
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:11
msgid "Copyright @copyright{} 1993, 2001--2021 Free Software Foundation, Inc."
msgstr ""
#. type: quotation
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:19
msgid ""
"Permission is granted to copy, distribute and/or modify this document under "
"the terms of the GNU Free Documentation License, Version 1.3 or any later "
"version published by the Free Software Foundation; with no Invariant "
"Sections, with the Front-Cover Texts being ``A GNU Manual'', and with the "
"Back-Cover Texts as in (a) below. A copy of the license is included in the "
"section entitled ``GNU Free Documentation License''."
msgstr ""
#. type: quotation
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:22
msgid ""
"(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and modify "
"this GNU manual.''"
msgstr ""
#. type: dircategory
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:25
#, no-wrap
msgid "Emacs lisp libraries"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:28
msgid "CL-Lib: (cl)"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:28
msgid "Partial Common Lisp support for Emacs Lisp."
msgstr ""
#. type: center
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:36
#, no-wrap
msgid "For GNU Emacs Lisp"
msgstr ""
#. type: center
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:38
#, no-wrap
msgid "as distributed with Emacs @value{EMACSVER}"
msgstr ""
#. type: center
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:40
#, no-wrap
msgid "Dave Gillespie"
msgstr ""
#. type: center
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:41
#, no-wrap
msgid "daveg@@synaptics.com"
msgstr ""
#. type: node
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:50
#, no-wrap
msgid "Top"
msgstr ""
#. type: top
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:51
#, no-wrap
msgid "GNU Emacs Common Lisp Emulation"
msgstr ""
#. type: chapter
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:83
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:84
#, no-wrap
msgid "Overview"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69
msgid "Basics, usage, organization, naming conventions."
msgstr ""
#. type: chapter
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:261
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:262
#, no-wrap
msgid "Program Structure"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69
msgid "Arglists, @code{cl-eval-when}."
msgstr ""
#. type: chapter
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:663
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:664
#, no-wrap
msgid "Predicates"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69
msgid "Type predicates and equality predicates."
msgstr ""
#. type: chapter
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:828
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:829
#, no-wrap
msgid "Control Structure"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69
msgid "Assignment, conditionals, blocks, looping."
msgstr ""
#. type: appendixsec
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:2516
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2517 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:4388
#, no-wrap
msgid "Macros"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69
msgid "Destructuring, compiler macros."
msgstr ""
#. type: chapter
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:2596
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2597
#, no-wrap
msgid "Declarations"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69
msgid "@code{cl-proclaim}, @code{cl-declare}, etc."
msgstr ""
#. type: chapter
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:2776
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2777
#, no-wrap
msgid "Symbols"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69
msgid "Property lists, creating symbols."
msgstr ""
#. type: chapter
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:2905
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2906
#, no-wrap
msgid "Numbers"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69
msgid "Predicates, functions, random numbers."
msgstr ""
#. type: chapter
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:3175
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3176
#, no-wrap
msgid "Sequences"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69
msgid "Mapping, functions, searching, sorting."
msgstr ""
#. type: chapter
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:3670
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3671
#, no-wrap
msgid "Lists"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69
msgid "Functions, substitution, sets, associations."
msgstr ""
#. type: chapter
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:3949
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3950
#, no-wrap
msgid "Structures"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69
msgid "@code{cl-defstruct}."
msgstr ""
#. type: node
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:4324
#, no-wrap
msgid "Assertions"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:69
msgid "Assertions and type checking."
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:76
msgid "Appendices"
msgstr ""
#. type: appendix
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:76 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:4385
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4386
#, no-wrap
msgid "Efficiency Concerns"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:76
msgid "Hints and techniques."
msgstr ""
#. type: appendix
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:76 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:4520
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4521
#, no-wrap
msgid "Common Lisp Compatibility"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:76
msgid "All known differences with Steele."
msgstr ""
#. type: appendix
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:76 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:4569
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4570
#, no-wrap
msgid "Porting Common Lisp"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:76
msgid "Hints for porting Common Lisp code."
msgstr ""
#. type: appendix
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:76 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:4768
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4769
#, no-wrap
msgid "Obsolete Features"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:76
msgid "Obsolete features."
msgstr ""
#. type: appendix
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:76 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:5205
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5206
#, no-wrap
msgid "GNU Free Documentation License"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:76
msgid "The license for this documentation."
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:81
msgid "Indexes"
msgstr ""
#. type: unnumbered
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:81 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:5209
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5210
#, no-wrap
msgid "Function Index"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:81
msgid "An entry for each documented function."
msgstr ""
#. type: unnumbered
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:81 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:5213
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5214
#, no-wrap
msgid "Variable Index"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:81
msgid "An entry for each documented variable."
msgstr ""
#. type: unnumbered
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:81 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:5217
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5218
#, no-wrap
msgid "Concept Index"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:81
msgid "An entry for each concept."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:91
msgid ""
"This document describes a set of Emacs Lisp facilities borrowed from Common "
"Lisp. All the facilities are described here in detail. While this document "
"does not assume any prior knowledge of Common Lisp, it does assume a basic "
"familiarity with Emacs Lisp."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:98
msgid ""
"Common Lisp is a huge language, and Common Lisp systems tend to be massive "
"and extremely complex. Emacs Lisp, by contrast, is rather minimalist in the "
"choice of Lisp features it offers the programmer. As Emacs Lisp programmers "
"have grown in number, and the applications they write have grown more "
"ambitious, it has become clear that Emacs Lisp could benefit from many of "
"the conveniences of Common Lisp."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:103
msgid ""
"The @dfn{CL} package adds a number of Common Lisp functions and control "
"structures to Emacs Lisp. While not a 100% complete implementation of "
"Common Lisp, it adds enough functionality to make Emacs Lisp programming "
"significantly more convenient."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:106
msgid ""
"Some Common Lisp features have been omitted from this package for various "
"reasons:"
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:113
msgid ""
"Some features are too complex or bulky relative to their benefit to Emacs "
"Lisp programmers. CLOS and Common Lisp streams are fine examples of this "
"group. (The separate package EIEIO implements a subset of CLOS "
"functionality. @xref{Top, , Introduction, eieio, EIEIO}.)"
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:119
msgid ""
"Other features cannot be implemented without modification to the Emacs Lisp "
"interpreter itself, such as multiple return values, case-insensitive "
"symbols, and complex numbers. This package generally makes no attempt to "
"emulate these features."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:128
msgid ""
"This package was originally written by Dave Gillespie, "
"@file{daveg@@synaptics.com}, as a total rewrite of an earlier 1986 "
"@file{cl.el} package by Cesar Quiroz. Care has been taken to ensure that "
"each function is defined efficiently, concisely, and with minimal impact on "
"the rest of the Emacs environment. Stefan Monnier added the file "
"@file{cl-lib.el} and rationalized the namespace for Emacs 24.3."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:133 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:135
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:136
#, no-wrap
msgid "Usage"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:133
msgid "How to use this package."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:133 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:157
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:158
#, no-wrap
msgid "Organization"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:133
msgid "The package's component files."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:133 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:218
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:219
#, no-wrap
msgid "Naming Conventions"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:133
msgid "Notes on function names."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:143
msgid ""
"This package is distributed with Emacs, so there is no need to install any "
"additional files in order to start using it. Lisp code that uses features "
"from this package should simply include at the beginning:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:146
#, no-wrap
msgid "(require 'cl-lib)\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:151
msgid ""
"You may wish to add such a statement to your init file, if you make frequent "
"use of features from this package."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:156
msgid ""
"Code that only uses macros from this package can enclose the above in "
"@code{eval-when-compile}. Internally, this library is divided into several "
"files, @pxref{Organization}. Your code should only ever load the main "
"@file{cl-lib} file, which will load the others as needed."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:162
msgid "The Common Lisp package is organized into four main files:"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:164
#, no-wrap
msgid "cl-lib.el"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:167
msgid ""
"This is the main file, which contains basic functions and information about "
"the package. This file is relatively compact."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:168
#, no-wrap
msgid "cl-extra.el"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:173
msgid ""
"This file contains the larger, more complex or unusual functions. It is "
"kept separate so that packages which only want to use Common Lisp "
"fundamentals like the @code{cl-incf} function won't need to pay the overhead "
"of loading the more advanced functions."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:174
#, no-wrap
msgid "cl-seq.el"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:177
msgid ""
"This file contains most of the advanced functions for operating on sequences "
"or lists, such as @code{cl-delete-if} and @code{cl-assoc}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:178
#, no-wrap
msgid "cl-macs.el"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:185
msgid ""
"This file contains the features that are macros instead of functions. "
"Macros expand when the caller is compiled, not when it is run, so the macros "
"generally only need to be present when the byte-compiler is running (or when "
"the macros are used in uncompiled code). Most of the macros of this package "
"are isolated in @file{cl-macs.el} so that they won't take up memory unless "
"you are compiling."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:192
msgid ""
"The file @file{cl-lib.el} includes all necessary @code{autoload} commands "
"for the functions and macros in the other three files. All you have to do "
"is @code{(require 'cl-lib)}, and @file{cl-lib.el} will take care of pulling "
"in the other files when they are needed."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:212
msgid ""
"There is another file, @file{cl.el}, which was the main entry point to this "
"package prior to Emacs 24.3. Nowadays, it is replaced by @file{cl-lib.el}. "
"The two provide the same features (in most cases), but use different "
"function names (in fact, @file{cl.el} mainly just defines aliases to the "
"@file{cl-lib.el} definitions). Where @file{cl-lib.el} defines a function "
"called, for example, @code{cl-incf}, @file{cl.el} uses the same name but "
"without the @samp{cl-} prefix, e.g., @code{incf} in this example. There are "
"a few exceptions to this. First, functions such as @code{cl-defun} where "
"the unprefixed version was already used for a standard Emacs Lisp function. "
"In such cases, the @file{cl.el} version adds a @samp{*} suffix, e.g., "
"@code{defun*}. Second, there are some obsolete features that are only "
"implemented in @file{cl.el}, not in @file{cl-lib.el}, because they are "
"replaced by other standard Emacs Lisp features. Finally, in a very few "
"cases the old @file{cl.el} versions do not behave in exactly the same way as "
"the @file{cl-lib.el} versions. @xref{Obsolete Features}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:217
msgid ""
"The old file @file{cl.el}, as well as the even older @file{cl-compat.el}, "
"are deprecated and will be removed in a future version of Emacs. Any "
"existing code that uses them should be updated to use @file{cl-lib.el} "
"instead."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:225
msgid ""
"Except where noted, all functions defined by this package have the same "
"calling conventions as their Common Lisp counterparts, and names that are "
"those of Common Lisp plus a @samp{cl-} prefix."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:229
msgid ""
"Internal function and variable names in the package are prefixed by "
"@code{cl--}. Here is a complete list of functions prefixed by @code{cl-} "
"that were @emph{not} taken from Common Lisp:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:233
#, no-wrap
msgid ""
"cl-callf cl-callf2 cl-defsubst\n"
"cl-letf cl-letf*\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:239
msgid ""
"The following simple functions and macros are defined in @file{cl-lib.el}; "
"they do not cause other components like @file{cl-extra} to be loaded."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:249
#, no-wrap
msgid ""
"cl-evenp cl-oddp cl-minusp\n"
"cl-plusp cl-endp cl-subst\n"
"cl-copy-list cl-list* cl-ldiff\n"
"cl-rest cl-decf [1] cl-incf [1]\n"
"cl-acons cl-adjoin [2] cl-pairlis\n"
"cl-pushnew [1,2] cl-declaim cl-proclaim\n"
"cl-caaar@dots{}cl-cddddr cl-first@dots{}cl-tenth\n"
"cl-mapcar [3]\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:253
msgid "[1] Only when @var{place} is a plain variable name."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:257
msgid ""
"[2] Only if @code{:test} is @code{eq}, @code{equal}, or unspecified, and "
"@code{:key} is not used."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:260
msgid "[3] Only for one sequence argument or two list arguments."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:268
msgid ""
"This section describes features of this package that have to do with "
"programs as a whole: advanced argument lists for functions, and the "
"@code{cl-eval-when} construct."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:272 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:274
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:275
#, no-wrap
msgid "Argument Lists"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:272
msgid "@code{&key}, @code{&aux}, @code{cl-defun}, @code{cl-defmacro}."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:272 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:513
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:514
#, no-wrap
msgid "Time of Evaluation"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:272
msgid "The @code{cl-eval-when} construct."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:276
#, no-wrap
msgid "&key"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:277
#, no-wrap
msgid "&aux"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:285
msgid ""
"Emacs Lisp's notation for argument lists of functions is a subset of the "
"Common Lisp notation. As well as the familiar @code{&optional} and "
"@code{&rest} markers, Common Lisp allows you to specify default values for "
"optional arguments, and it provides the additional markers @code{&key} and "
"@code{&aux}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:290
msgid ""
"Since argument parsing is built-in to Emacs, there is no way for this "
"package to implement Common Lisp argument lists seamlessly. Instead, this "
"package defines alternates for several Lisp forms which you must use if you "
"need Common Lisp argument lists."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:291
#, no-wrap
msgid "cl-defun name arglist body@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:296
msgid ""
"This form is identical to the regular @code{defun} form, except that "
"@var{arglist} is allowed to be a full Common Lisp argument list. Also, the "
"function body is enclosed in an implicit block called @var{name}; "
"@pxref{Blocks and Exits}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:298
#, no-wrap
msgid "cl-iter-defun name arglist body@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:303
msgid ""
"This form is identical to the regular @code{iter-defun} form, except that "
"@var{arglist} is allowed to be a full Common Lisp argument list. Also, the "
"function body is enclosed in an implicit block called @var{name}; "
"@pxref{Blocks and Exits}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:305
#, no-wrap
msgid "cl-defsubst name arglist body@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:317
msgid ""
"This is just like @code{cl-defun}, except that the function that is defined "
"is automatically proclaimed @code{inline}, i.e., calls to it may be expanded "
"into in-line code by the byte compiler. This is analogous to the "
"@code{defsubst} form; @code{cl-defsubst} uses a different method (compiler "
"macros) which works in all versions of Emacs, and also generates somewhat "
"more efficient inline expansions. In particular, @code{cl-defsubst} "
"arranges for the processing of keyword arguments, default values, etc., to "
"be done at compile-time whenever possible."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:319 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:435
#, no-wrap
msgid "&allow-other-keys"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:320
#, no-wrap
msgid "cl-defmacro name arglist body@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:330
msgid ""
"This is identical to the regular @code{defmacro} form, except that "
"@var{arglist} is allowed to be a full Common Lisp argument list. The "
"@code{&environment} keyword is supported as described in Steele's book "
"@cite{Common Lisp, the Language}. The @code{&whole} keyword is supported "
"only within destructured lists (see below); top-level @code{&whole} cannot "
"be implemented with the current Emacs Lisp interpreter. The macro expander "
"body is enclosed in an implicit block called @var{name}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:332
#, no-wrap
msgid "cl-function symbol-or-lambda"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:336
msgid ""
"This is identical to the regular @code{function} form, except that if the "
"argument is a @code{lambda} form then that form may use a full Common Lisp "
"argument list."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:341
msgid ""
"Also, all forms (such as @code{cl-flet} and @code{cl-labels}) defined in "
"this package that include @var{arglist}s in their syntax allow full Common "
"Lisp argument lists."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:347
msgid ""
"Note that it is @emph{not} necessary to use @code{cl-defun} in order to have "
"access to most CL features in your function. These features are always "
"present; @code{cl-defun}'s only difference from @code{defun} is its more "
"flexible argument lists and its implicit block."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:349
msgid "The full form of a Common Lisp argument list is"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:356
#, no-wrap
msgid ""
"(@var{var}@dots{}\n"
" &optional (@var{var} @var{initform} @var{svar})@dots{}\n"
" &rest @var{var}\n"
" &key ((@var{keyword} @var{var}) @var{initform} @var{svar})@dots{}\n"
" &aux (@var{var} @var{initform})@dots{})\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:361
msgid ""
"Each of the five argument list sections is optional. The @var{svar}, "
"@var{initform}, and @var{keyword} parts are optional; if they are omitted, "
"then @samp{(@var{var})} may be written simply @samp{@var{var}}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:366
msgid ""
"The first section consists of zero or more @dfn{required} arguments. These "
"arguments must always be specified in a call to the function; there is no "
"difference between Emacs Lisp and Common Lisp as far as required arguments "
"are concerned."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:380
msgid ""
"The second section consists of @dfn{optional} arguments. These arguments "
"may be specified in the function call; if they are not, @var{initform} "
"specifies the default value used for the argument. (No @var{initform} means "
"to use @code{nil} as the default.) The @var{initform} is evaluated with the "
"bindings for the preceding arguments already established; @code{(a &optional "
"(b (1+ a)))} matches one or two arguments, with the second argument "
"defaulting to one plus the first argument. If the @var{svar} is specified, "
"it is an auxiliary variable which is bound to @code{t} if the optional "
"argument was specified, or to @code{nil} if the argument was omitted. If "
"you don't use an @var{svar}, then there will be no way for your function to "
"tell whether it was called with no argument, or with the default value "
"passed explicitly as an argument."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:388
msgid ""
"The third section consists of a single @dfn{rest} argument. If more "
"arguments were passed to the function than are accounted for by the required "
"and optional arguments, those extra arguments are collected into a list and "
"bound to the ``rest'' argument variable. Common Lisp's @code{&rest} is "
"equivalent to that of Emacs Lisp. Common Lisp accepts @code{&body} as a "
"synonym for @code{&rest} in macro contexts; this package accepts it all the "
"time."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:392
msgid ""
"The fourth section consists of @dfn{keyword} arguments. These are optional "
"arguments which are specified by name rather than positionally in the "
"argument list. For example,"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:395
#, no-wrap
msgid "(cl-defun foo (a &optional b &key c d (e 17)))\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:406
msgid ""
"defines a function which may be called with one, two, or more arguments. "
"The first two arguments are bound to @code{a} and @code{b} in the usual "
"way. The remaining arguments must be pairs of the form @code{:c}, "
"@code{:d}, or @code{:e} followed by the value to be bound to the "
"corresponding argument variable. (Symbols whose names begin with a colon "
"are called @dfn{keywords}, and they are self-quoting in the same way as "
"@code{nil} and @code{t}.)"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:415
msgid ""
"For example, the call @code{(foo 1 2 :d 3 :c 4)} sets the five arguments to "
"1, 2, 4, 3, and 17, respectively. If the same keyword appears more than "
"once in the function call, the first occurrence takes precedence over the "
"later ones. Note that it is not possible to specify keyword arguments "
"without specifying the optional argument @code{b} as well, since @code{(foo "
"1 :c 2)} would bind @code{b} to the keyword @code{:c}, then signal an error "
"because @code{2} is not a valid keyword."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:418
msgid ""
"You can also explicitly specify the keyword argument; it need not be simply "
"the variable name prefixed with a colon. For example,"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:421
#, no-wrap
msgid "(cl-defun bar (&key (a 1) ((baz b) 4)))\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:430
msgid ""
"specifies a keyword @code{:a} that sets the variable @code{a} with default "
"value 1, as well as a keyword @code{baz} that sets the variable @code{b} "
"with default value 4. In this case, because @code{baz} is not self-quoting, "
"you must quote it explicitly in the function call, like this:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:433
#, no-wrap
msgid "(bar :a 10 'baz 42)\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:445
msgid ""
"Ordinarily, it is an error to pass an unrecognized keyword to a function, "
"e.g., @code{(foo 1 2 :c 3 :goober 4)}. You can ask Lisp to ignore "
"unrecognized keywords, either by adding the marker @code{&allow-other-keys} "
"after the keyword section of the argument list, or by specifying an "
"@code{:allow-other-keys} argument in the call whose value is "
"non-@code{nil}. If the function uses both @code{&rest} and @code{&key} at "
"the same time, the ``rest'' argument is bound to the keyword list as it "
"appears in the call. For example:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:450
#, no-wrap
msgid ""
"(cl-defun find-thing (thing &rest rest &key need &allow-other-keys)\n"
" (or (apply 'cl-member thing thing-list :allow-other-keys t rest)\n"
" (if need (error \"Thing not found\"))))\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:458
msgid ""
"This function takes a @code{:need} keyword argument, but also accepts other "
"keyword arguments which are passed on to the @code{cl-member} function. "
"@code{allow-other-keys} is used to keep both @code{find-thing} and "
"@code{cl-member} from complaining about each others' keywords in the "
"arguments."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:465
msgid ""
"The fifth section of the argument list consists of @dfn{auxiliary "
"variables}. These are not really arguments at all, but simply variables "
"which are bound to @code{nil} or to the specified @var{initforms} during "
"execution of the function. There is no difference between the following two "
"functions, except for a matter of stylistic taste:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:469
#, no-wrap
msgid ""
"(cl-defun foo (a b &aux (c (+ a b)) d)\n"
" @var{body})\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:473
#, no-wrap
msgid ""
"(cl-defun foo (a b)\n"
" (let ((c (+ a b)) d)\n"
" @var{body}))\n"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:475
#, no-wrap
msgid "destructuring, in argument list"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:484
msgid ""
"Argument lists support @dfn{destructuring}. In Common Lisp, destructuring "
"is only allowed with @code{defmacro}; this package allows it with "
"@code{cl-defun} and other argument lists as well. In destructuring, any "
"argument variable (@var{var} in the above example) can be replaced by a list "
"of variables, or more generally, a recursive argument list. The "
"corresponding argument value must be a list whose elements match this "
"recursive argument list. For example:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:489
#, no-wrap
msgid ""
"(cl-defmacro dolist ((var listform &optional resultform)\n"
" &rest body)\n"
" @dots{})\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:503
msgid ""
"This says that the first argument of @code{dolist} must be a list of two or "
"three items; if there are other arguments as well as this list, they are "
"stored in @code{body}. All features allowed in regular argument lists are "
"allowed in these recursive argument lists. In addition, the clause "
"@samp{&whole @var{var}} is allowed at the front of a recursive argument "
"list. It binds @var{var} to the whole list being matched; thus "
"@code{(&whole all a b)} matches a list of two things, with @code{a} bound to "
"the first thing, @code{b} bound to the second thing, and @code{all} bound to "
"the list itself. (Common Lisp allows @code{&whole} in top-level "
"@code{defmacro} argument lists as well, but Emacs Lisp does not support this "
"usage.)"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:507
msgid ""
"One last feature of destructuring is that the argument list may be dotted, "
"so that the argument list @code{(a b . c)} is functionally equivalent to "
"@code{(a b &rest c)}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:512
msgid ""
"If the optimization quality @code{safety} is set to 0 "
"(@pxref{Declarations}), error checking for wrong number of arguments and "
"invalid keyword arguments is disabled. By default, argument lists are "
"rigorously checked."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:526
msgid ""
"Normally, the byte-compiler does not actually execute the forms in a file it "
"compiles. For example, if a file contains @code{(setq foo t)}, the act of "
"compiling it will not actually set @code{foo} to @code{t}. This is true "
"even if the @code{setq} was a top-level form (i.e., not enclosed in a "
"@code{defun} or other form). Sometimes, though, you would like to have "
"certain top-level forms evaluated at compile-time. For example, the "
"compiler effectively evaluates @code{defmacro} forms at compile-time so that "
"later parts of the file can refer to the macros that are defined."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:527
#, no-wrap
msgid "cl-eval-when (situations@dots{}) forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:533
msgid ""
"This form controls when the body @var{forms} are evaluated. The "
"@var{situations} list may contain any set of the symbols @code{compile}, "
"@code{load}, and @code{eval} (or their long-winded ANSI equivalents, "
"@code{:compile-toplevel}, @code{:load-toplevel}, and @code{:execute})."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:540
msgid ""
"The @code{cl-eval-when} form is handled differently depending on whether or "
"not it is being compiled as a top-level form. Specifically, it gets special "
"treatment if it is being compiled by a command such as "
"@code{byte-compile-file} which compiles files or buffers of code, and it "
"appears either literally at the top level of the file or inside a top-level "
"@code{progn}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:545
msgid ""
"For compiled top-level @code{cl-eval-when}s, the body @var{forms} are "
"executed at compile-time if @code{compile} is in the @var{situations} list, "
"and the @var{forms} are written out to the file (to be executed at "
"load-time) if @code{load} is in the @var{situations} list."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:552
msgid ""
"For non-compiled-top-level forms, only the @code{eval} situation is "
"relevant. (This includes forms executed by the interpreter, forms compiled "
"with @code{byte-compile} rather than @code{byte-compile-file}, and "
"non-top-level forms.) The @code{cl-eval-when} acts like a @code{progn} if "
"@code{eval} is specified, and like @code{nil} (ignoring the body "
"@var{forms}) if not."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:556
msgid ""
"The rules become more subtle when @code{cl-eval-when}s are nested; consult "
"Steele (second edition) for the gruesome details (and some gruesome "
"examples)."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:558
msgid "Some simple examples:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:568
#, no-wrap
msgid ""
";; Top-level forms in foo.el:\n"
"(cl-eval-when (compile) (setq foo1 'bar))\n"
"(cl-eval-when (load) (setq foo2 'bar))\n"
"(cl-eval-when (compile load) (setq foo3 'bar))\n"
"(cl-eval-when (eval) (setq foo4 'bar))\n"
"(cl-eval-when (eval compile) (setq foo5 'bar))\n"
"(cl-eval-when (eval load) (setq foo6 'bar))\n"
"(cl-eval-when (eval compile load) (setq foo7 'bar))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:572
msgid ""
"When @file{foo.el} is compiled, these variables will be set during the "
"compilation itself:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:575
#, no-wrap
msgid "foo1 foo3 foo5 foo7 ; 'compile'\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:578
msgid "When @file{foo.elc} is loaded, these variables will be set:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:581
#, no-wrap
msgid "foo2 foo3 foo6 foo7 ; 'load'\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:585
msgid "And if @file{foo.el} is loaded uncompiled, these variables will be set:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:588
#, no-wrap
msgid "foo4 foo5 foo6 foo7 ; 'eval'\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:593
msgid ""
"If these seven @code{cl-eval-when}s had been, say, inside a @code{defun}, "
"then the first three would have been equivalent to @code{nil} and the last "
"four would have been equivalent to the corresponding @code{setq}s."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:599
msgid ""
"Note that @code{(cl-eval-when (load eval) @dots{})} is equivalent to "
"@code{(progn @dots{})} in all contexts. The compiler treats certain "
"top-level forms, like @code{defmacro} (sort-of) and @code{require}, as if "
"they were wrapped in @code{(cl-eval-when (compile load eval) @dots{})}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:605
msgid ""
"Emacs includes two special forms related to @code{cl-eval-when}. @xref{Eval "
"During Compile,,,elisp,GNU Emacs Lisp Reference Manual}. One of these, "
"@code{eval-when-compile}, is not quite equivalent to any @code{cl-eval-when} "
"construct and is described below."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:608
msgid ""
"The other form, @code{(eval-and-compile @dots{})}, is exactly equivalent to "
"@samp{(cl-eval-when (compile load eval) @dots{})}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:609
#, no-wrap
msgid "eval-when-compile forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:616
msgid ""
"The @var{forms} are evaluated at compile-time; at execution time, this form "
"acts like a quoted constant of the resulting value. Used at top-level, "
"@code{eval-when-compile} is just like @samp{eval-when (compile eval)}. In "
"other contexts, @code{eval-when-compile} allows code to be evaluated once at "
"compile-time for efficiency or other reasons."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:618
msgid "This form is similar to the @samp{#.} syntax of true Common Lisp."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:620
#, no-wrap
msgid "cl-load-time-value form"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:623
msgid ""
"The @var{form} is evaluated at load-time; at execution time, this form acts "
"like a quoted constant of the resulting value."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:627
msgid ""
"Early Common Lisp had a @samp{#,} syntax that was similar to this, but ANSI "
"Common Lisp replaced it with @code{load-time-value} and gave it more "
"well-defined semantics."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:635
msgid ""
"In a compiled file, @code{cl-load-time-value} arranges for @var{form} to be "
"evaluated when the @file{.elc} file is loaded and then used as if it were a "
"quoted constant. In code compiled by @code{byte-compile} rather than "
"@code{byte-compile-file}, the effect is identical to "
"@code{eval-when-compile}. In uncompiled code, both @code{eval-when-compile} "
"and @code{cl-load-time-value} act exactly like @code{progn}."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:645
#, no-wrap
msgid ""
"(defun report ()\n"
" (insert \"This function was executed on: \"\n"
" (current-time-string)\n"
" \", compiled on: \"\n"
" (eval-when-compile (current-time-string))\n"
" ;; or '#.(current-time-string) in real Common Lisp\n"
" \", and loaded on: \"\n"
" (cl-load-time-value (current-time-string))))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:650
msgid ""
"Byte-compiled, the above defun will result in the following code (or its "
"compiled equivalent, of course) in the @file{.elc} file:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:660
#, no-wrap
msgid ""
"(setq --temp-- (current-time-string))\n"
"(defun report ()\n"
" (insert \"This function was executed on: \"\n"
" (current-time-string)\n"
" \", compiled on: \"\n"
" '\"Wed Oct 31 16:32:28 2012\"\n"
" \", and loaded on: \"\n"
" --temp--))\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:669
msgid ""
"This section describes functions for testing whether various facts are true "
"or false."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:673 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:675
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:676
#, no-wrap
msgid "Type Predicates"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:673
msgid "@code{cl-typep}, @code{cl-deftype}, and @code{cl-coerce}."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:673 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:799
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:800
#, no-wrap
msgid "Equality Predicates"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:673
msgid "@code{cl-equalp}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:678
#, no-wrap
msgid "cl-typep object type"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:682
msgid ""
"Check if @var{object} is of type @var{type}, where @var{type} is a (quoted) "
"type name of the sort used by Common Lisp. For example, @code{(cl-typep foo "
"'integer)} is equivalent to @code{(integerp foo)}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:686
msgid ""
"The @var{type} argument to the above function is either a symbol or a list "
"beginning with a symbol."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:693
msgid ""
"If the type name is a symbol, Emacs appends @samp{-p} to the symbol name to "
"form the name of a predicate function for testing the type. (Built-in "
"predicates whose names end in @samp{p} rather than @samp{-p} are used when "
"appropriate.)"
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:699
msgid ""
"The type symbol @code{t} stands for the union of all types. @code{(cl-typep "
"@var{object} t)} is always true. Likewise, the type symbol @code{nil} "
"stands for nothing at all, and @code{(cl-typep @var{object} nil)} is always "
"false."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:704
msgid ""
"The type symbol @code{null} represents the symbol @code{nil}. Thus "
"@code{(cl-typep @var{object} 'null)} is equivalent to @code{(null "
"@var{object})}."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:709
msgid ""
"The type symbol @code{atom} represents all objects that are not cons "
"cells. Thus @code{(cl-typep @var{object} 'atom)} is equivalent to "
"@code{(atom @var{object})}."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:713
msgid ""
"The type symbol @code{real} is a synonym for @code{number}, and "
"@code{fixnum} is a synonym for @code{integer}."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:717
msgid ""
"The type symbols @code{character} and @code{string-char} match integers in "
"the range from 0 to 255."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:724
msgid ""
"The type list @code{(integer @var{low} @var{high})} represents all integers "
"between @var{low} and @var{high}, inclusive. Either bound may be a list of "
"a single integer to specify an exclusive limit, or a @code{*} to specify no "
"limit. The type @code{(integer * *)} is thus equivalent to @code{integer}."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:729
msgid ""
"Likewise, lists beginning with @code{float}, @code{real}, or @code{number} "
"represent numbers of that type falling in a particular range."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:734
msgid ""
"Lists beginning with @code{and}, @code{or}, and @code{not} form combinations "
"of types. For example, @code{(or integer (float 0 *))} represents all "
"objects that are integers or non-negative floats."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:740
msgid ""
"Lists beginning with @code{member} or @code{cl-member} represent objects "
"@code{eql} to any of the following values. For example, @code{(member 1 2 3 "
"4)} is equivalent to @code{(integer 1 4)}, and @code{(member nil)} is "
"equivalent to @code{null}."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:745
msgid ""
"Lists of the form @code{(satisfies @var{predicate})} represent all objects "
"for which @var{predicate} returns true when called with that object as an "
"argument."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:749
msgid ""
"The following function and macro (not technically predicates) are related to "
"@code{cl-typep}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:750
#, no-wrap
msgid "cl-coerce object type"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:762
msgid ""
"This function attempts to convert @var{object} to the specified @var{type}. "
"If @var{object} is already of that type as determined by @code{cl-typep}, it "
"is simply returned. Otherwise, certain types of conversions will be made: "
"If @var{type} is any sequence type (@code{string}, @code{list}, etc.)@: then "
"@var{object} will be converted to that type if possible. If @var{type} is "
"@code{character}, then strings of length one and symbols with one-character "
"names can be coerced. If @var{type} is @code{float}, then integers can be "
"coerced in versions of Emacs that support floats. In all other "
"circumstances, @code{cl-coerce} signals an error."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:764
#, no-wrap
msgid "cl-deftype name arglist forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:777
msgid ""
"This macro defines a new type called @var{name}. It is similar to "
"@code{defmacro} in many ways; when @var{name} is encountered as a type name, "
"the body @var{forms} are evaluated and should return a type specifier that "
"is equivalent to the type. The @var{arglist} is a Common Lisp argument list "
"of the sort accepted by @code{cl-defmacro}. The type specifier "
"@samp{(@var{name} @var{args}@dots{})} is expanded by calling the expander "
"with those arguments; the type symbol @samp{@var{name}} is expanded by "
"calling the expander with no arguments. The @var{arglist} is processed the "
"same as for @code{cl-defmacro} except that optional arguments without "
"explicit defaults use @code{*} instead of @code{nil} as the ``default'' "
"default. Some examples:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:786
#, no-wrap
msgid ""
"(cl-deftype null () '(satisfies null)) ; predefined\n"
"(cl-deftype list () '(or null cons)) ; predefined\n"
"(cl-deftype unsigned-byte (&optional bits)\n"
" (list 'integer 0 (if (eq bits '*) bits (1- (ash 1 bits)))))\n"
"(unsigned-byte 8) @equiv{} (integer 0 255)\n"
"(unsigned-byte) @equiv{} (integer 0 *)\n"
"unsigned-byte @equiv{} (integer 0 *)\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:792
msgid ""
"The last example shows how the Common Lisp @code{unsigned-byte} type "
"specifier could be implemented if desired; this package does not implement "
"@code{unsigned-byte} by default."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:798
msgid ""
"The @code{cl-typecase} (@pxref{Conditionals}) and @code{cl-check-type} "
"(@pxref{Assertions}) macros also use type names. The @code{cl-map}, "
"@code{cl-concatenate}, and @code{cl-merge} functions take type-name "
"arguments to specify the type of sequence to return. @xref{Sequences}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:804
msgid "This package defines the Common Lisp predicate @code{cl-equalp}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:805
#, no-wrap
msgid "cl-equalp a b"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:811
msgid ""
"This function is a more flexible version of @code{equal}. In particular, it "
"compares strings case-insensitively, and it compares numbers without regard "
"to type (so that @code{(cl-equalp 3 3.0)} is true). Vectors and conses are "
"compared recursively. All other objects are compared as if by @code{equal}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:819
msgid ""
"This function differs from Common Lisp @code{equalp} in several respects. "
"First, Common Lisp's @code{equalp} also compares @emph{characters} "
"case-insensitively, which would be impractical in this package since Emacs "
"does not distinguish between integers and characters. In keeping with the "
"idea that strings are less vector-like in Emacs Lisp, this package's "
"@code{cl-equalp} also will not compare strings against vectors of integers."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:827
msgid ""
"Also note that the Common Lisp functions @code{member} and @code{assoc} use "
"@code{eql} to compare elements, whereas Emacs Lisp follows the MacLisp "
"tradition and uses @code{equal} for these two functions. The functions "
"@code{cl-member} and @code{cl-assoc} use @code{eql}, as in Common Lisp. The "
"standard Emacs Lisp functions @code{memq} and @code{assq} use @code{eq}, and "
"the standard @code{memql} uses @code{eql}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:836
msgid ""
"The features described in the following sections implement various advanced "
"control structures, including extensions to the standard @code{setf} "
"facility, and a number of looping and conditional constructs."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:846 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:848
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:849
#, no-wrap
msgid "Assignment"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:846
msgid "The @code{cl-psetq} form."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:846 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:885
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:886
#, no-wrap
msgid "Generalized Variables"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:846
msgid "Extensions to generalized variables."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:846 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:1255
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1256
#, no-wrap
msgid "Variable Bindings"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:846
msgid "@code{cl-progv}, @code{cl-flet}, @code{cl-macrolet}."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:846 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:1439
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1440
#, no-wrap
msgid "Conditionals"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:846
msgid "@code{cl-case}, @code{cl-typecase}."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:846 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:1514
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1515
#, no-wrap
msgid "Blocks and Exits"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:846
msgid "@code{cl-block}, @code{cl-return}, @code{cl-return-from}."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:846 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:1595
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1596
#, no-wrap
msgid "Iteration"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:846
msgid "@code{cl-do}, @code{cl-dotimes}, @code{cl-dolist}, @code{cl-do-symbols}."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:846 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:1736
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1737
#, no-wrap
msgid "Loop Facility"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:846
msgid "The Common Lisp @code{loop} macro."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:846 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:2480
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2481
#, no-wrap
msgid "Multiple Values"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:846
msgid "@code{cl-values}, @code{cl-multiple-value-bind}, etc."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:854
msgid ""
"The @code{cl-psetq} form is just like @code{setq}, except that multiple "
"assignments are done in parallel rather than sequentially."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:855
#, no-wrap
msgid "cl-psetq [symbol form]@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:861
msgid ""
"This special form (actually a macro) is used to assign to several variables "
"simultaneously. Given only one @var{symbol} and @var{form}, it has the same "
"effect as @code{setq}. Given several @var{symbol} and @var{form} pairs, it "
"evaluates all the @var{form}s in advance and then stores the corresponding "
"variables afterwards."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:875
#, no-wrap
msgid ""
"(setq x 2 y 3)\n"
"(setq x (+ x y) y (* x y))\n"
"x\n"
" @result{} 5\n"
"y ; @r{@code{y} was computed after @code{x} was set.}\n"
" @result{} 15\n"
"(setq x 2 y 3)\n"
"(cl-psetq x (+ x y) y (* x y))\n"
"x\n"
" @result{} 5\n"
"y ; @r{@code{y} was computed before @code{x} was set.}\n"
" @result{} 6\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:881
msgid ""
"The simplest use of @code{cl-psetq} is @code{(cl-psetq x y y x)}, which "
"exchanges the values of two variables. (The @code{cl-rotatef} form provides "
"an even more convenient way to swap two variables; @pxref{Modify Macros}.)"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:883
msgid "@code{cl-psetq} always returns @code{nil}."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:887
#, no-wrap
msgid "generalized variable"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:897
msgid ""
"A @dfn{generalized variable} or @dfn{place form} is one of the many places "
"in Lisp memory where values can be stored. The simplest place form is a "
"regular Lisp variable. But the @sc{car}s and @sc{cdr}s of lists, elements "
"of arrays, properties of symbols, and many other locations are also places "
"where Lisp values are stored. For basic information, @pxref{Generalized "
"Variables,,,elisp,GNU Emacs Lisp Reference Manual}. This package provides "
"several additional features related to generalized variables."
msgstr ""
#. type: subsection
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:901 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:903
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:904
#, no-wrap
msgid "Setf Extensions"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:901
msgid "Additional @code{setf} places."
msgstr ""
#. type: subsection
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:901 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:1036
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1037
#, no-wrap
msgid "Modify Macros"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:901
msgid "@code{cl-incf}, @code{cl-rotatef}, @code{cl-letf}, @code{cl-callf}, etc."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:909
msgid ""
"Several standard (e.g., @code{car}) and Emacs-specific (e.g., "
"@code{window-point}) Lisp functions are @code{setf}-able by default. This "
"package defines @code{setf} handlers for several additional functions:"
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:913
msgid "Functions from this package:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:916
#, no-wrap
msgid ""
"cl-rest cl-subseq cl-get cl-getf\n"
"cl-caaar@dots{}cl-cddddr cl-first@dots{}cl-tenth\n"
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:921
msgid ""
"Note that for @code{cl-getf} (as for @code{nthcdr}), the list argument of "
"the function must itself be a valid @var{place} form."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:924
msgid "General Emacs Lisp functions:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:950
#, no-wrap
msgid ""
"buffer-file-name getenv\n"
"buffer-modified-p global-key-binding\n"
"buffer-name local-key-binding\n"
"buffer-string mark\n"
"buffer-substring mark-marker\n"
"current-buffer marker-position\n"
"current-case-table mouse-position\n"
"current-column point\n"
"current-global-map point-marker\n"
"current-input-mode point-max\n"
"current-local-map point-min\n"
"current-window-configuration read-mouse-position\n"
"default-file-modes screen-height\n"
"documentation-property screen-width\n"
"face-background selected-window\n"
"face-background-pixmap selected-screen\n"
"face-font selected-frame\n"
"face-foreground standard-case-table\n"
"face-underline-p syntax-table\n"
"file-modes visited-file-modtime\n"
"frame-height window-height\n"
"frame-parameters window-width\n"
"frame-visible-p x-get-secondary-selection\n"
"frame-width x-get-selection\n"
"get-register\n"
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:957
msgid ""
"Most of these have directly corresponding ``set'' functions, like "
"@code{use-local-map} for @code{current-local-map}, or @code{goto-char} for "
"@code{point}. A few, like @code{point-min}, expand to longer sequences of "
"code when they are used with @code{setf} (@code{(narrow-to-region x "
"(point-max))} in this case)."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:964
msgid ""
"A call of the form @code{(substring @var{subplace} @var{n} [@var{m}])}, "
"where @var{subplace} is itself a valid generalized variable whose current "
"value is a string, and where the value stored is also a string. The new "
"string is spliced into the specified part of the destination string. For "
"example:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:978
#, no-wrap
msgid ""
"(setq a (list \"hello\" \"world\"))\n"
" @result{} (\"hello\" \"world\")\n"
"(cadr a)\n"
" @result{} \"world\"\n"
"(substring (cadr a) 2 4)\n"
" @result{} \"rl\"\n"
"(setf (substring (cadr a) 2 4) \"o\")\n"
" @result{} \"o\"\n"
"(cadr a)\n"
" @result{} \"wood\"\n"
"a\n"
" @result{} (\"hello\" \"wood\")\n"
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:982
msgid ""
"The generalized variable @code{buffer-substring}, listed above, also works "
"in this way by replacing a portion of the current buffer."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1002
msgid ""
"A macro call, in which case the macro is expanded and @code{setf} is applied "
"to the resulting form."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1009
msgid ""
"The @code{setf} macro takes care to evaluate all subforms in the proper "
"left-to-right order; for example,"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1012
#, no-wrap
msgid "(setf (aref vec (cl-incf i)) i)\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1022
msgid ""
"looks like it will evaluate @code{(cl-incf i)} exactly once, before the "
"following access to @code{i}; the @code{setf} expander will insert temporary "
"variables as necessary to ensure that it does in fact work this way no "
"matter what setf-method is defined for @code{aref}. (In this case, "
"@code{aset} would be used and no such steps would be necessary since "
"@code{aset} takes its arguments in a convenient order.)"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1026
msgid ""
"However, if the @var{place} form is a macro which explicitly evaluates its "
"arguments in an unusual order, this unusual order will be preserved. "
"Adapting an example from Steele, given"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1029
#, no-wrap
msgid "(defmacro wrong-order (x y) (list 'aref y x))\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1035
msgid ""
"the form @code{(setf (wrong-order @var{a} @var{b}) 17)} will evaluate "
"@var{b} first, then @var{a}, just as in an actual call to "
"@code{wrong-order}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1043
msgid ""
"This package defines a number of macros that operate on generalized "
"variables. Many are interesting and useful even when the @var{place} is "
"just a variable name."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1044
#, no-wrap
msgid "cl-psetf [place form]@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1050
msgid ""
"This macro is to @code{setf} what @code{cl-psetq} is to @code{setq}: When "
"several @var{place}s and @var{form}s are involved, the assignments take "
"place in parallel rather than sequentially. Specifically, all subforms are "
"evaluated from left to right, then all the assignments are done (in an "
"undefined order)."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1052
#, no-wrap
msgid "cl-incf place &optional x"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1057
msgid ""
"This macro increments the number stored in @var{place} by one, or by @var{x} "
"if specified. The incremented value is returned. For example, "
"@code{(cl-incf i)} is equivalent to @code{(setq i (1+ i))}, and "
"@code{(cl-incf (car x) 2)} is equivalent to @code{(setcar x (+ (car x) 2))}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1060
msgid ""
"As with @code{setf}, care is taken to preserve the ``apparent'' order of "
"evaluation. For example,"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1063
#, no-wrap
msgid "(cl-incf (aref vec (cl-incf i)))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1070
msgid ""
"appears to increment @code{i} once, then increment the element of @code{vec} "
"addressed by @code{i}; this is indeed exactly what it does, which means the "
"above form is @emph{not} equivalent to the ``obvious'' expansion,"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1074
#, no-wrap
msgid ""
"(setf (aref vec (cl-incf i))\n"
" (1+ (aref vec (cl-incf i)))) ; wrong!\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1078
msgid "but rather to something more like"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1082
#, no-wrap
msgid ""
"(let ((temp (cl-incf i)))\n"
" (setf (aref vec temp) (1+ (aref vec temp))))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1087
msgid ""
"Again, all of this is taken care of automatically by @code{cl-incf} and the "
"other generalized-variable macros."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1091
msgid ""
"As a more Emacs-specific example of @code{cl-incf}, the expression "
"@code{(cl-incf (point) @var{n})} is essentially equivalent to "
"@code{(forward-char @var{n})}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1093
#, no-wrap
msgid "cl-decf place &optional x"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1096
msgid ""
"This macro decrements the number stored in @var{place} by one, or by @var{x} "
"if specified."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1098
#, no-wrap
msgid "cl-pushnew x place @t{&key :test :test-not :key}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1103
msgid ""
"This macro inserts @var{x} at the front of the list stored in @var{place}, "
"but only if @var{x} isn't present in the list already. The optional keyword "
"arguments are interpreted in the same way as for @code{cl-adjoin}. "
"@xref{Lists as Sets}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1105
#, no-wrap
msgid "cl-shiftf place@dots{} newvalue"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1111
msgid ""
"This macro shifts the @var{place}s left by one, shifting in the value of "
"@var{newvalue} (which may be any Lisp expression, not just a generalized "
"variable), and returning the value shifted out of the first @var{place}. "
"Thus, @code{(cl-shiftf @var{a} @var{b} @var{c} @var{d})} is equivalent to"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1118
#, no-wrap
msgid ""
"(prog1\n"
" @var{a}\n"
" (cl-psetf @var{a} @var{b}\n"
" @var{b} @var{c}\n"
" @var{c} @var{d}))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1123
msgid ""
"except that the subforms of @var{a}, @var{b}, and @var{c} are actually "
"evaluated only once each and in the apparent order."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1125
#, no-wrap
msgid "cl-rotatef place@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1128
msgid ""
"This macro rotates the @var{place}s left by one in circular fashion. Thus, "
"@code{(cl-rotatef @var{a} @var{b} @var{c} @var{d})} is equivalent to"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1134
#, no-wrap
msgid ""
"(cl-psetf @var{a} @var{b}\n"
" @var{b} @var{c}\n"
" @var{c} @var{d}\n"
" @var{d} @var{a})\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1140
msgid ""
"except for the evaluation of subforms. @code{cl-rotatef} always returns "
"@code{nil}. Note that @code{(cl-rotatef @var{a} @var{b})} conveniently "
"exchanges @var{a} and @var{b}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1144
msgid ""
"The following macros were invented for this package; they have no analogues "
"in Common Lisp."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1145
#, no-wrap
msgid "cl-letf (bindings@dots{}) forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1154
msgid ""
"This macro is analogous to @code{let}, but for generalized variables rather "
"than just symbols. Each @var{binding} should be of the form "
"@code{(@var{place} @var{value})}; the original contents of the @var{place}s "
"are saved, the @var{value}s are stored in them, and then the body "
"@var{form}s are executed. Afterwards, the @var{places} are set back to "
"their original saved contents. This cleanup happens even if the @var{form}s "
"exit irregularly due to a @code{throw} or an error."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1156
msgid "For example,"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1161
#, no-wrap
msgid ""
"(cl-letf (((point) (point-min))\n"
" (a 17))\n"
" @dots{})\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1169
msgid ""
"moves point in the current buffer to the beginning of the buffer, and also "
"binds @code{a} to 17 (as if by a normal @code{let}, since @code{a} is just a "
"regular variable). After the body exits, @code{a} is set back to its "
"original value and point is moved back to its original position."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1177
msgid ""
"Note that @code{cl-letf} on @code{(point)} is not quite like a "
"@code{save-excursion}, as the latter effectively saves a marker which tracks "
"insertions and deletions in the buffer. Actually, a @code{cl-letf} of "
"@code{(point-marker)} is much closer to this behavior. (@code{point} and "
"@code{point-marker} are equivalent as @code{setf} places; each will accept "
"either an integer or a marker as the stored value.)"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1182
msgid ""
"Like in the case of @code{let}, the @var{value} forms are evaluated in the "
"order they appear, but the order of bindings is unspecified. Therefore, "
"avoid binding the same @var{place} more than once in a single @code{cl-letf} "
"form."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1186
msgid ""
"Since generalized variables look like lists, @code{let}'s shorthand of using "
"@samp{foo} for @samp{(foo nil)} as a @var{binding} would be ambiguous in "
"@code{cl-letf} and is not allowed."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1194
msgid ""
"However, a @var{binding} specifier may be a one-element list "
"@samp{(@var{place})}, which is similar to @samp{(@var{place} @var{place})}. "
"In other words, the @var{place} is not disturbed on entry to the body, and "
"the only effect of the @code{cl-letf} is to restore the original value of "
"@var{place} afterwards."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1206
msgid ""
"Note that in this case, and in fact almost every case, @var{place} must have "
"a well-defined value outside the @code{cl-letf} body. There is essentially "
"only one exception to this, which is @var{place} a plain variable with a "
"specified @var{value} (such as @code{(a 17)} in the above example)."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1214
#, no-wrap
msgid "cl-letf* (bindings@dots{}) forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1217
msgid ""
"This macro is to @code{cl-letf} what @code{let*} is to @code{let}: It does "
"the bindings in sequential rather than parallel order."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1219
#, no-wrap
msgid "cl-callf @var{function} @var{place} @var{args}@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1226
msgid ""
"This is the ``generic'' modify macro. It calls @var{function}, which should "
"be an unquoted function name, macro name, or lambda. It passes @var{place} "
"and @var{args} as arguments, and assigns the result back to @var{place}. "
"For example, @code{(cl-incf @var{place} @var{n})} is the same as "
"@code{(cl-callf + @var{place} @var{n})}. Some more examples:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1231
#, no-wrap
msgid ""
"(cl-callf abs my-number)\n"
"(cl-callf concat (buffer-name) \"<\" (number-to-string n) \">\")\n"
"(cl-callf cl-union happy-people (list joe bob) :test 'same-person)\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1234
msgid "Note again that @code{cl-callf} is an extension to standard Common Lisp."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1236
#, no-wrap
msgid "cl-callf2 @var{function} @var{arg1} @var{place} @var{args}@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1241
msgid ""
"This macro is like @code{cl-callf}, except that @var{place} is the "
"@emph{second} argument of @var{function} rather than the first. For "
"example, @code{(push @var{x} @var{place})} is equivalent to @code{(cl-callf2 "
"cons @var{x} @var{place})}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1247
msgid ""
"The @code{cl-callf} and @code{cl-callf2} macros serve as building blocks for "
"other macros like @code{cl-incf}, and @code{cl-pushnew}. The @code{cl-letf} "
"and @code{cl-letf*} macros are used in the processing of symbol macros; "
"@pxref{Macro Bindings}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1248
#, no-wrap
msgid "with-memoization @var{place} @var{code}@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1252
msgid ""
"This macro provides a simple way to do memoization. @var{code} is evaluated "
"and then stashed in @var{place}. If @var{place}'s value is non-@code{nil}, "
"return that value instead of evaluating @var{code}."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1257
#, no-wrap
msgid "variable binding"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1262
msgid ""
"These Lisp forms make bindings to variables and function names, analogous to "
"Lisp's built-in @code{let} form."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1265
msgid ""
"@xref{Modify Macros}, for the @code{cl-letf} and @code{cl-letf*} forms which "
"are also related to variable bindings."
msgstr ""
#. type: subsection
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1270 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:1272
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1273
#, no-wrap
msgid "Dynamic Bindings"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1270
msgid "The @code{cl-progv} form."
msgstr ""
#. type: subsection
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1270 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:1293
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1294
#, no-wrap
msgid "Function Bindings"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1270
msgid "@code{cl-flet} and @code{cl-labels}."
msgstr ""
#. type: subsection
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1270 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:1344
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1345
#, no-wrap
msgid "Macro Bindings"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1270
msgid "@code{cl-macrolet} and @code{cl-symbol-macrolet}."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1274
#, no-wrap
msgid "dynamic binding"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1280
msgid ""
"The standard @code{let} form binds variables whose names are known at "
"compile-time. The @code{cl-progv} form provides an easy way to bind "
"variables whose names are computed at run-time."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1281
#, no-wrap
msgid "cl-progv symbols values forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1291
msgid ""
"This form establishes @code{let}-style variable bindings on a set of "
"variables computed at run-time. The expressions @var{symbols} and "
"@var{values} are evaluated, and must return lists of symbols and values, "
"respectively. The symbols are bound to the corresponding values for the "
"duration of the body @var{form}s. If @var{values} is shorter than "
"@var{symbols}, the last few symbols are bound to @code{nil}. If "
"@var{symbols} is shorter than @var{values}, the excess values are ignored."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1295
#, no-wrap
msgid "function binding"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1300
msgid "These forms make @code{let}-like bindings to functions instead of variables."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1301
#, no-wrap
msgid "cl-flet (bindings@dots{}) forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1307
msgid ""
"This form establishes @code{let}-style bindings for functions rather than "
"values. Each @var{binding} must be a list of the form @samp{(@var{name} "
"@var{arglist} @var{body}@dots{})}. Within @var{forms}, any reference to the "
"function @var{name} uses the local definition instead of the global one."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1311
msgid ""
"A ``reference'' to a function name is either a call to that function, or a "
"use of its name quoted by @code{function} to be passed on to, say, "
"@code{mapcar}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1314
msgid ""
"The bindings are lexical in scope. This means that all references to the "
"named functions must appear physically within @var{forms}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1319
msgid ""
"Functions defined by @code{cl-flet} may use the full Common Lisp argument "
"notation supported by @code{cl-defun}; also, the function body is enclosed "
"in an implicit block as if by @code{cl-defun}. @xref{Program Structure}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1323
msgid ""
"Note that the @file{cl.el} version of this macro behaves slightly "
"differently. In particular, its binding is dynamic rather than lexical. "
"@xref{Obsolete Macros}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1325
#, no-wrap
msgid "cl-labels (bindings@dots{}) forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1332
msgid ""
"The @code{cl-labels} form is like @code{cl-flet}, except that the function "
"bindings can be recursive. The scoping is lexical, but you can only capture "
"functions in closures if @code{lexical-binding} is @code{t}. "
"@xref{Closures,,,elisp,GNU Emacs Lisp Reference Manual}, and @ref{Using "
"Lexical Binding,,,elisp,GNU Emacs Lisp Reference Manual}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1339
msgid ""
"Lexical scoping means that all references to the named functions must appear "
"physically within the body of the @code{cl-labels} form. References may "
"appear both in the body @var{forms} of @code{cl-labels} itself, and in the "
"bodies of the functions themselves. Thus, @code{cl-labels} can define local "
"recursive functions, or mutually-recursive sets of functions."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1342
msgid ""
"Note that the @file{cl.el} version of this macro behaves slightly "
"differently. @xref{Obsolete Macros}."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1346
#, no-wrap
msgid "macro binding"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1350
msgid "These forms create local macros and ``symbol macros''."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1351
#, no-wrap
msgid "cl-macrolet (bindings@dots{}) forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1357
msgid ""
"This form is analogous to @code{cl-flet}, but for macros instead of "
"functions. Each @var{binding} is a list of the same form as the arguments "
"to @code{cl-defmacro} (i.e., a macro name, argument list, and macro-expander "
"forms). The macro is defined accordingly for use within the body of the "
"@code{cl-macrolet}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1364
msgid ""
"Because of the nature of macros, @code{cl-macrolet} is always lexically "
"scoped. The @code{cl-macrolet} binding will affect only calls that appear "
"physically within the body @var{forms}, possibly after expansion of other "
"macros in the body. Calls of @code{cl-macrolet} bound macros are expanded "
"in the global environment."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1366
#, no-wrap
msgid "cl-symbol-macrolet (bindings@dots{}) forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1372
msgid ""
"This form creates @dfn{symbol macros}, which are macros that look like "
"variable references rather than function calls. Each @var{binding} is a "
"list @samp{(@var{var} @var{expansion})}; any reference to @var{var} within "
"the body @var{forms} is replaced by @var{expansion}."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1379
#, no-wrap
msgid ""
"(setq bar '(5 . 9))\n"
"(cl-symbol-macrolet ((foo (car bar)))\n"
" (cl-incf foo))\n"
"bar\n"
" @result{} (6 . 9)\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1384
msgid ""
"A @code{setq} of a symbol macro is treated the same as a @code{setf}. I.e., "
"@code{(setq foo 4)} in the above would be equivalent to @code{(setf foo 4)}, "
"which in turn expands to @code{(setf (car bar) 4)}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1396
msgid ""
"Likewise, a @code{let} or @code{let*} binding a symbol macro is treated like "
"a @code{cl-letf} or @code{cl-letf*}. This differs from true Common Lisp, "
"where the rules of lexical scoping cause a @code{let} binding to shadow a "
"@code{symbol-macrolet} binding. In this package, such shadowing does not "
"occur, even when @code{lexical-binding} is @code{t}. (This behavior "
"predates the addition of lexical binding to Emacs Lisp, and may change in "
"future to respect @code{lexical-binding}.) At present in this package, only "
"@code{lexical-let} and @code{lexical-let*} will shadow a symbol macro. "
"@xref{Obsolete Lexical Binding}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1400
msgid ""
"There is no analogue of @code{defmacro} for symbol macros; all symbol macros "
"are local. A typical use of @code{cl-symbol-macrolet} is in the expansion "
"of another macro:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1408
#, no-wrap
msgid ""
"(cl-defmacro my-dolist ((x list) &rest body)\n"
" (let ((var (cl-gensym)))\n"
" (list 'cl-loop 'for var 'on list 'do\n"
" (cl-list* 'cl-symbol-macrolet\n"
" (list (list x (list 'car var)))\n"
" body))))\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1413
#, no-wrap
msgid ""
"(setq mylist '(1 2 3 4))\n"
"(my-dolist (x mylist) (cl-incf x))\n"
"mylist\n"
" @result{} (2 3 4 5)\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1420
msgid ""
"In this example, the @code{my-dolist} macro is similar to @code{dolist} "
"(@pxref{Iteration}) except that the variable @code{x} becomes a true "
"reference onto the elements of the list. The @code{my-dolist} call shown "
"here expands to"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1425
#, no-wrap
msgid ""
"(cl-loop for G1234 on mylist do\n"
" (cl-symbol-macrolet ((x (car G1234)))\n"
" (cl-incf x)))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1429
msgid "which in turn expands to"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1432
#, no-wrap
msgid "(cl-loop for G1234 on mylist do (cl-incf (car G1234)))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1437
msgid ""
"@xref{Loop Facility}, for a description of the @code{cl-loop} macro. This "
"package defines a nonstandard @code{in-ref} loop clause that works much like "
"@code{my-dolist}."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1441
#, no-wrap
msgid "conditionals"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1446
msgid ""
"These conditional forms augment Emacs Lisp's simple @code{if}, @code{and}, "
"@code{or}, and @code{cond} forms."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1447
#, no-wrap
msgid "cl-case keyform clause@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1453
msgid ""
"This macro evaluates @var{keyform}, then compares it with the key values "
"listed in the various @var{clause}s. Whichever clause matches the key is "
"executed; comparison is done by @code{eql}. If no clause matches, the "
"@code{cl-case} form returns @code{nil}. The clauses are of the form"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1456
#, no-wrap
msgid "(@var{keylist} @var{body-forms}@dots{})\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1469
msgid ""
"where @var{keylist} is a list of key values. If there is exactly one value, "
"and it is not a cons cell or the symbol @code{nil} or @code{t}, then it can "
"be used by itself as a @var{keylist} without being enclosed in a list. All "
"key values in the @code{cl-case} form must be distinct. The final clauses "
"may use @code{t} in place of a @var{keylist} to indicate a default clause "
"that should be taken if none of the other clauses match. (The symbol "
"@code{otherwise} is also recognized in place of @code{t}. To make a clause "
"that matches the actual symbol @code{t}, @code{nil}, or @code{otherwise}, "
"enclose the symbol in a list.)"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1473
msgid ""
"For example, this expression reads a keystroke, then does one of four things "
"depending on whether it is an @samp{a}, a @samp{b}, a @key{RET} or "
"@kbd{C-j}, or anything else."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1480
#, no-wrap
msgid ""
"(cl-case (read-char)\n"
" (?a (do-a-thing))\n"
" (?b (do-b-thing))\n"
" ((?\\r ?\\n) (do-ret-thing))\n"
" (t (do-other-thing)))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1483
#, no-wrap
msgid "cl-ecase keyform clause@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1487
msgid ""
"This macro is just like @code{cl-case}, except that if the key does not "
"match any of the clauses, an error is signaled rather than simply returning "
"@code{nil}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1489
#, no-wrap
msgid "cl-typecase keyform clause@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1494
msgid ""
"This macro is a version of @code{cl-case} that checks for types rather than "
"values. Each @var{clause} is of the form @samp{(@var{type} "
"@var{body}@dots{})}. @xref{Type Predicates}, for a description of type "
"specifiers. For example,"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1501
#, no-wrap
msgid ""
"(cl-typecase x\n"
" (integer (munch-integer x))\n"
" (float (munch-float x))\n"
" (string (munch-integer (string-to-number x)))\n"
" (t (munch-anything x)))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1506
msgid ""
"The type specifier @code{t} matches any type of object; the word "
"@code{otherwise} is also allowed. To make one clause match any of several "
"types, use an @code{(or @dots{})} type specifier."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1508
#, no-wrap
msgid "cl-etypecase keyform clause@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1512
msgid ""
"This macro is just like @code{cl-typecase}, except that if the key does not "
"match any of the clauses, an error is signaled rather than simply returning "
"@code{nil}."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1516
#, no-wrap
msgid "block"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1517
#, no-wrap
msgid "exit"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1526
msgid ""
"Common Lisp @dfn{blocks} provide a non-local exit mechanism very similar to "
"@code{catch} and @code{throw}, with lexical scoping. This package actually "
"implements @code{cl-block} in terms of @code{catch}; however, the lexical "
"scoping allows the byte-compiler to omit the costly @code{catch} step if the "
"body of the block does not actually @code{cl-return-from} the block."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1527
#, no-wrap
msgid "cl-block name forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1533
msgid ""
"The @var{forms} are evaluated as if by a @code{progn}. However, if any of "
"the @var{forms} execute @code{(cl-return-from @var{name})}, they will jump "
"out and return directly from the @code{cl-block} form. The @code{cl-block} "
"returns the result of the last @var{form} unless a @code{cl-return-from} "
"occurs."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1547
msgid ""
"The @code{cl-block}/@code{cl-return-from} mechanism is quite similar to the "
"@code{catch}/@code{throw} mechanism. The main differences are that block "
"@var{name}s are unevaluated symbols, rather than forms (such as quoted "
"symbols) that evaluate to a tag at run-time; and also that blocks are always "
"lexically scoped. In a dynamically scoped @code{catch}, functions called "
"from the @code{catch} body can also @code{throw} to the @code{catch}. This "
"is not an option for @code{cl-block}, where the @code{cl-return-from} "
"referring to a block name must appear physically within the @var{forms} that "
"make up the body of the block. They may not appear within other called "
"functions, although they may appear within macro expansions or "
"@code{lambda}s in the body. Block names and @code{catch} names form "
"independent name-spaces."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1553
msgid ""
"In true Common Lisp, @code{defun} and @code{defmacro} surround the function "
"or expander bodies with implicit blocks with the same name as the function "
"or macro. This does not occur in Emacs Lisp, but this package provides "
"@code{cl-defun} and @code{cl-defmacro} forms, which do create the implicit "
"block."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1557
msgid ""
"The Common Lisp looping constructs defined by this package, such as "
"@code{cl-loop} and @code{cl-dolist}, also create implicit blocks just as in "
"Common Lisp."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1567
msgid ""
"Because they are implemented in terms of Emacs Lisp's @code{catch} and "
"@code{throw}, blocks have the same overhead as actual @code{catch} "
"constructs (roughly two function calls). However, the byte compiler will "
"optimize away the @code{catch} if the block does not in fact contain any "
"@code{cl-return} or @code{cl-return-from} calls that jump to it. This means "
"that @code{cl-do} loops and @code{cl-defun} functions that don't use "
"@code{cl-return} don't pay the overhead to support it."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1569
#, no-wrap
msgid "cl-return-from name [result]"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1574
msgid ""
"This macro returns from the block named @var{name}, which must be an "
"(unevaluated) symbol. If a @var{result} form is specified, it is evaluated "
"to produce the result returned from the @code{block}. Otherwise, @code{nil} "
"is returned."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1576
#, no-wrap
msgid "cl-return [result]"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1580
msgid ""
"This macro is exactly like @code{(cl-return-from nil @var{result})}. Common "
"Lisp loops like @code{cl-do} and @code{cl-dolist} implicitly enclose "
"themselves in @code{nil} blocks."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1583
#, no-wrap
msgid "cl-tagbody &rest labels-or-statements"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1592
msgid ""
"This macro executes statements while allowing for control transfer to "
"user-defined labels. Each element of @var{labels-or-statements} can be "
"either a label (an integer or a symbol), or a cons-cell (a statement). This "
"distinction is made before macroexpansion. Statements are executed in "
"sequence, discarding any return value. Any statement can transfer control "
"at any time to the statements that follow one of the labels with the special "
"form @code{(go @var{label})}. Labels have lexical scope and dynamic extent."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1597
#, no-wrap
msgid "iteration"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1603
msgid ""
"The macros described here provide more sophisticated, high-level looping "
"constructs to complement Emacs Lisp's basic loop forms "
"(@pxref{Iteration,,,elisp,GNU Emacs Lisp Reference Manual})."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1604
#, no-wrap
msgid "cl-loop forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1610
msgid ""
"This package supports both the simple, old-style meaning of @code{loop} and "
"the extremely powerful and flexible feature known as the @dfn{Loop Facility} "
"or @dfn{Loop Macro}. This more advanced facility is discussed in the "
"following section; @pxref{Loop Facility}. The simple form of @code{loop} is "
"described here."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1615
msgid ""
"If @code{cl-loop} is followed by zero or more Lisp expressions, then "
"@code{(cl-loop @var{exprs}@dots{})} simply creates an infinite loop "
"executing the expressions over and over. The loop is enclosed in an "
"implicit @code{nil} block. Thus,"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1618
#, no-wrap
msgid "(cl-loop (foo) (if (no-more) (return 72)) (bar))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1622
msgid "is exactly equivalent to"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1625
#, no-wrap
msgid "(cl-block nil (while t (foo) (if (no-more) (return 72)) (bar)))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1632
msgid ""
"If any of the expressions are plain symbols, the loop is instead interpreted "
"as a Loop Macro specification as described later. (This is not a "
"restriction in practice, since a plain symbol in the above notation would "
"simply access and throw away the value of a variable.)"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1634
#, no-wrap
msgid "cl-do (spec@dots{}) (end-test [result@dots{}]) forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1637
msgid "This macro creates a general iterative loop. Each @var{spec} is of the form"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1640
#, no-wrap
msgid "(@var{var} [@var{init} [@var{step}]])\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1651
msgid ""
"The loop works as follows: First, each @var{var} is bound to the associated "
"@var{init} value as if by a @code{let} form. Then, in each iteration of the "
"loop, the @var{end-test} is evaluated; if true, the loop is finished. "
"Otherwise, the body @var{forms} are evaluated, then each @var{var} is set to "
"the associated @var{step} expression (as if by a @code{cl-psetq} form) and "
"the next iteration begins. Once the @var{end-test} becomes true, the "
"@var{result} forms are evaluated (with the @var{var}s still bound to their "
"values) to produce the result returned by @code{cl-do}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1655
msgid ""
"The entire @code{cl-do} loop is enclosed in an implicit @code{nil} block, so "
"that you can use @code{(cl-return)} to break out of the loop at any time."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1665
msgid ""
"If there are no @var{result} forms, the loop returns @code{nil}. If a given "
"@var{var} has no @var{step} form, it is bound to its @var{init} value but "
"not otherwise modified during the @code{cl-do} loop (unless the code "
"explicitly modifies it); this case is just a shorthand for putting a "
"@code{(let ((@var{var} @var{init})) @dots{})} around the loop. If "
"@var{init} is also omitted it defaults to @code{nil}, and in this case a "
"plain @samp{@var{var}} can be used in place of @samp{(@var{var})}, again "
"following the analogy with @code{let}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1672
msgid ""
"This example (from Steele) illustrates a loop that applies the function "
"@code{f} to successive pairs of values from the lists @code{foo} and "
"@code{bar}; it is equivalent to the call @code{(cl-mapcar 'f foo bar)}. "
"Note that this loop has no body @var{forms} at all, performing all its work "
"as side effects of the rest of the loop."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1679
#, no-wrap
msgid ""
"(cl-do ((x foo (cdr x))\n"
" (y bar (cdr y))\n"
" (z nil (cons (f (car x) (car y)) z)))\n"
" ((or (null x) (null y))\n"
" (nreverse z)))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1682
#, no-wrap
msgid "cl-do* (spec@dots{}) (end-test [result@dots{}]) forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1687
msgid ""
"This is to @code{cl-do} what @code{let*} is to @code{let}. In particular, "
"the initial values are bound as if by @code{let*} rather than @code{let}, "
"and the steps are assigned as if by @code{setq} rather than @code{cl-psetq}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1689
msgid "Here is another way to write the above loop:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1699
#, no-wrap
msgid ""
"(cl-do* ((xp foo (cdr xp))\n"
" (yp bar (cdr yp))\n"
" (x (car xp) (car xp))\n"
" (y (car yp) (car yp))\n"
" z)\n"
" ((or (null xp) (null yp))\n"
" (nreverse z))\n"
" (push (f x y) z))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1702
#, no-wrap
msgid "cl-dolist (var list [result]) forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1705
msgid ""
"This is exactly like the standard Emacs Lisp macro @code{dolist}, but "
"surrounds the loop with an implicit @code{nil} block."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1707
#, no-wrap
msgid "cl-dotimes (var count [result]) forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1716
msgid ""
"This is exactly like the standard Emacs Lisp macro @code{dotimes}, but "
"surrounds the loop with an implicit @code{nil} block. The body is executed "
"with @var{var} bound to the integers from zero (inclusive) to @var{count} "
"(exclusive), in turn. Then the @var{result} form is evaluated with "
"@var{var} bound to the total number of iterations that were done (i.e., "
"@code{(max 0 @var{count})}) to get the return value for the loop form. Use "
"of @var{result} is deprecated."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1718
#, no-wrap
msgid "cl-do-symbols (var [obarray [result]]) forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1726
msgid ""
"This loop iterates over all interned symbols. If @var{obarray} is specified "
"and is not @code{nil}, it loops over all symbols in that obarray. For each "
"symbol, the body @var{forms} are evaluated with @var{var} bound to that "
"symbol. The symbols are visited in an unspecified order. Afterward the "
"@var{result} form, if any, is evaluated (with @var{var} bound to @code{nil}) "
"to get the return value. The loop is surrounded by an implicit @code{nil} "
"block."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1728
#, no-wrap
msgid "cl-do-all-symbols (var [result]) forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1731
msgid ""
"This is identical to @code{cl-do-symbols} except that the @var{obarray} "
"argument is omitted; it always iterates over the default obarray."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1735
msgid ""
"@xref{Mapping over Sequences}, for some more functions for iterating over "
"vectors or lists."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1738
#, no-wrap
msgid "loop facility"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1745
msgid ""
"A common complaint with Lisp's traditional looping constructs was that they "
"were either too simple and limited, such as @code{dotimes} or @code{while}, "
"or too unreadable and obscure, like Common Lisp's @code{do} loop."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1749
msgid ""
"To remedy this, Common Lisp added a construct called the ``Loop Facility'' "
"or ``@code{loop} macro'', with an easy-to-use but very powerful and "
"expressive syntax."
msgstr ""
#. type: subsection
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1757 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:1759
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1760
#, no-wrap
msgid "Loop Basics"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1757
msgid "The @code{cl-loop} macro, basic clause structure."
msgstr ""
#. type: subsection
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1757 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:1818
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1819
#, no-wrap
msgid "Loop Examples"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1757
msgid "Working examples of the @code{cl-loop} macro."
msgstr ""
#. type: subsection
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1757 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:1891
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1892
#, no-wrap
msgid "For Clauses"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1757
msgid "Clauses introduced by @code{for} or @code{as}."
msgstr ""
#. type: subsection
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1757 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:2197
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2198
#, no-wrap
msgid "Iteration Clauses"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1757
msgid "@code{repeat}, @code{while}, @code{thereis}, etc."
msgstr ""
#. type: subsection
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1757 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:2261
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2262
#, no-wrap
msgid "Accumulation Clauses"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1757
msgid "@code{collect}, @code{sum}, @code{maximize}, etc."
msgstr ""
#. type: subsection
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1757 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:2330
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2331
#, no-wrap
msgid "Other Clauses"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1757
msgid "@code{with}, @code{if}, @code{initially}, @code{finally}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1767
msgid ""
"The @code{cl-loop} macro essentially creates a mini-language within Lisp "
"that is specially tailored for describing loops. While this language is a "
"little strange-looking by the standards of regular Lisp, it turns out to be "
"very easy to learn and well-suited to its purpose."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1771
msgid ""
"Since @code{cl-loop} is a macro, all parsing of the loop language takes "
"place at byte-compile time; compiled @code{cl-loop}s are just as efficient "
"as the equivalent @code{while} loops written longhand."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1772
#, no-wrap
msgid "cl-loop clauses@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1780
msgid ""
"A loop construct consists of a series of @var{clause}s, each introduced by a "
"symbol like @code{for} or @code{do}. Clauses are simply strung together in "
"the argument list of @code{cl-loop}, with minimal extra parentheses. The "
"various types of clauses specify initializations, such as the binding of "
"temporary variables, actions to be taken in the loop, stepping actions, and "
"final cleanup."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1783
msgid "Common Lisp specifies a certain general order of clauses in a loop:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1788
#, no-wrap
msgid ""
"(loop @var{name-clause}\n"
" @var{var-clauses}@dots{}\n"
" @var{action-clauses}@dots{})\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1797
msgid ""
"The @var{name-clause} optionally gives a name to the implicit block that "
"surrounds the loop. By default, the implicit block is named @code{nil}. "
"The @var{var-clauses} specify what variables should be bound during the "
"loop, and how they should be modified or iterated throughout the course of "
"the loop. The @var{action-clauses} are things to be done during the loop, "
"such as computing, collecting, and returning values."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1803
msgid ""
"The Emacs version of the @code{cl-loop} macro is less restrictive about the "
"order of clauses, but things will behave most predictably if you put the "
"variable-binding clauses @code{with}, @code{for}, and @code{repeat} before "
"the action clauses. As in Common Lisp, @code{initially} and @code{finally} "
"clauses can go anywhere."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1811
msgid ""
"Loops generally return @code{nil} by default, but you can cause them to "
"return a value by using an accumulation clause like @code{collect}, an "
"end-test clause like @code{always}, or an explicit @code{return} clause to "
"jump out of the implicit block. (Because the loop body is enclosed in an "
"implicit block, you can also use regular Lisp @code{cl-return} or "
"@code{cl-return-from} to break out of the loop.)"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1817
msgid ""
"The following sections give some examples of the loop macro in action, and "
"describe the particular loop clauses in great detail. Consult the second "
"edition of Steele for additional discussion and examples."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1825
msgid ""
"Before listing the full set of clauses that are allowed, let's look at a few "
"example loops just to get a feel for the @code{cl-loop} language."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1829
#, no-wrap
msgid ""
"(cl-loop for buf in (buffer-list)\n"
" collect (buffer-file-name buf))\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1839
msgid ""
"This loop iterates over all Emacs buffers, using the list returned by "
"@code{buffer-list}. For each buffer @var{buf}, it calls "
"@code{buffer-file-name} and collects the results into a list, which is then "
"returned from the @code{cl-loop} construct. The result is a list of the "
"file names of all the buffers in Emacs's memory. The words @code{for}, "
"@code{in}, and @code{collect} are reserved words in the @code{cl-loop} "
"language."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1842
#, no-wrap
msgid "(cl-loop repeat 20 do (insert \"Yowsa\\n\"))\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1847
msgid "This loop inserts the phrase ``Yowsa'' twenty times in the current buffer."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1850
#, no-wrap
msgid "(cl-loop until (eobp) do (munch-line) (forward-line 1))\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1856
msgid ""
"This loop calls @code{munch-line} on every line until the end of the "
"buffer. If point is already at the end of the buffer, the loop exits "
"immediately."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1859
#, no-wrap
msgid "(cl-loop do (munch-line) until (eobp) do (forward-line 1))\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1864
msgid ""
"This loop is similar to the above one, except that @code{munch-line} is "
"always called at least once."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1870
#, no-wrap
msgid ""
"(cl-loop for x from 1 to 100\n"
" for y = (* x x)\n"
" until (>= y 729)\n"
" finally return (list x (= y 729)))\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1884
msgid ""
"This more complicated loop searches for a number @code{x} whose square is "
"729. For safety's sake it only examines @code{x} values up to 100; dropping "
"the phrase @samp{to 100} would cause the loop to count upwards with no "
"limit. The second @code{for} clause defines @code{y} to be the square of "
"@code{x} within the loop; the expression after the @code{=} sign is "
"reevaluated each time through the loop. The @code{until} clause gives a "
"condition for terminating the loop, and the @code{finally} clause says what "
"to do when the loop finishes. (This particular example was written less "
"concisely than it could have been, just for the sake of illustration.)"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1890
msgid ""
"Note that even though this loop contains three clauses (two @code{for}s and "
"an @code{until}) that would have been enough to define loops all by "
"themselves, it still creates a single loop rather than some sort of "
"triple-nested loop. You must explicitly nest your @code{cl-loop} constructs "
"if you want nested loops."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1899
msgid ""
"Most loops are governed by one or more @code{for} clauses. A @code{for} "
"clause simultaneously describes variables to be bound, how those variables "
"are to be stepped during the loop, and usually an end condition based on "
"those variables."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1910
msgid ""
"The word @code{as} is a synonym for the word @code{for}. This word is "
"followed by a variable name, then a word like @code{from} or @code{across} "
"that describes the kind of iteration desired. In Common Lisp, the phrase "
"@code{being the} sometimes precedes the type of iteration; in this package "
"both @code{being} and @code{the} are optional. The word @code{each} is a "
"synonym for @code{the}, and the word that follows it may be singular or "
"plural: @samp{for x being the elements of y} or @samp{for x being each "
"element of y}. Which form you use is purely a matter of style."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1912
msgid "The variable is bound around the loop as if by @code{let}:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1918
#, no-wrap
msgid ""
"(setq i 'happy)\n"
"(cl-loop for i from 1 to 10 do (do-something-with i))\n"
"i\n"
" @result{} happy\n"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1921
#, no-wrap
msgid "for @var{var} from @var{expr1} to @var{expr2} by @var{expr3}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1925
msgid ""
"This type of @code{for} clause creates a counting loop. Each of the three "
"sub-terms is optional, though there must be at least one term so that the "
"clause is marked as a counting clause."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1934
msgid ""
"The three expressions are the starting value, the ending value, and the step "
"value, respectively, of the variable. The loop counts upwards by default "
"(@var{expr3} must be positive), from @var{expr1} to @var{expr2} "
"inclusively. If you omit the @code{from} term, the loop counts from zero; "
"if you omit the @code{to} term, the loop counts forever without stopping "
"(unless stopped by some other loop clause, of course); if you omit the "
"@code{by} term, the loop counts in steps of one."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1943
msgid ""
"You can replace the word @code{from} with @code{upfrom} or @code{downfrom} "
"to indicate the direction of the loop. Likewise, you can replace @code{to} "
"with @code{upto} or @code{downto}. For example, @samp{for x from 5 downto "
"1} executes five times with @code{x} taking on the integers from 5 down to 1 "
"in turn. Also, you can replace @code{to} with @code{below} or @code{above}, "
"which are like @code{upto} and @code{downto} respectively except that they "
"are exclusive rather than inclusive limits:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1949
#, no-wrap
msgid ""
"(cl-loop for x to 10 collect x)\n"
" @result{} (0 1 2 3 4 5 6 7 8 9 10)\n"
"(cl-loop for x below 10 collect x)\n"
" @result{} (0 1 2 3 4 5 6 7 8 9)\n"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1955
msgid ""
"The @code{by} value is always positive, even for downward-counting loops. "
"Some sort of @code{from} value is required for downward loops; @samp{for x "
"downto 5} is not a valid loop clause all by itself."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1956
#, no-wrap
msgid "for @var{var} in @var{list} by @var{function}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1961
msgid ""
"This clause iterates @var{var} over all the elements of @var{list}, in "
"turn. If you specify the @code{by} term, then @var{function} is used to "
"traverse the list instead of @code{cdr}; it must be a function taking one "
"argument. For example:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1967
#, no-wrap
msgid ""
"(cl-loop for x in '(1 2 3 4 5 6) collect (* x x))\n"
" @result{} (1 4 9 16 25 36)\n"
"(cl-loop for x in '(1 2 3 4 5 6) by 'cddr collect (* x x))\n"
" @result{} (1 9 25)\n"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1969
#, no-wrap
msgid "for @var{var} on @var{list} by @var{function}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1971
msgid "This clause iterates @var{var} over all the cons cells of @var{list}."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1975
#, no-wrap
msgid ""
"(cl-loop for x on '(1 2 3 4) collect x)\n"
" @result{} ((1 2 3 4) (2 3 4) (3 4) (4))\n"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1977
#, no-wrap
msgid "for @var{var} in-ref @var{list} by @var{function}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1981
msgid ""
"This is like a regular @code{in} clause, but @var{var} becomes a "
"@code{setf}-able ``reference'' onto the elements of the list rather than "
"just a temporary variable. For example,"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1984
#, no-wrap
msgid "(cl-loop for x in-ref my-list do (cl-incf x))\n"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1989
msgid ""
"increments every element of @code{my-list} in place. This clause is an "
"extension to standard Common Lisp."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1990
#, no-wrap
msgid "for @var{var} across @var{array}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1993
msgid ""
"This clause iterates @var{var} over all the elements of @var{array}, which "
"may be a vector or a string."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1997
#, no-wrap
msgid ""
"(cl-loop for x across \"aeiou\"\n"
" do (use-vowel (char-to-string x)))\n"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:1999
#, no-wrap
msgid "for @var{var} across-ref @var{array}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2002
msgid ""
"This clause iterates over an array, with @var{var} a @code{setf}-able "
"reference onto the elements; see @code{in-ref} above."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2003
#, no-wrap
msgid "for @var{var} being the elements of @var{sequence}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2010
msgid ""
"This clause iterates over the elements of @var{sequence}, which may be a "
"list, vector, or string. Since the type must be determined at run-time, "
"this is somewhat less efficient than @code{in} or @code{across}. The clause "
"may be followed by the additional term @samp{using (index @var{var2})} to "
"cause @var{var2} to be bound to the successive indices (starting at 0) of "
"the elements."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2014
msgid ""
"This clause type is taken from older versions of the @code{loop} macro, and "
"is not present in modern Common Lisp. The @samp{using (sequence @dots{})} "
"term of the older macros is not supported."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2015
#, no-wrap
msgid "for @var{var} being the elements of-ref @var{sequence}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2018
msgid ""
"This clause iterates over a sequence, with @var{var} a @code{setf}-able "
"reference onto the elements; see @code{in-ref} above."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2019
#, no-wrap
msgid "for @var{var} being the symbols [of @var{obarray}]"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2024
msgid ""
"This clause iterates over symbols, either over all interned symbols or over "
"all symbols in @var{obarray}. The loop is executed with @var{var} bound to "
"each symbol in turn. The symbols are visited in an unspecified order."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2026
msgid "As an example,"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2032
#, no-wrap
msgid ""
"(cl-loop for sym being the symbols\n"
" when (fboundp sym)\n"
" when (string-match \"^map\" (symbol-name sym))\n"
" collect sym)\n"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2036
msgid "returns a list of all the functions whose names begin with @samp{map}."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2039
msgid ""
"The Common Lisp words @code{external-symbols} and @code{present-symbols} are "
"also recognized but are equivalent to @code{symbols} in Emacs Lisp."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2046
msgid ""
"Due to a minor implementation restriction, it will not work to have more "
"than one @code{for} clause iterating over symbols, hash tables, keymaps, "
"overlays, or intervals in a given @code{cl-loop}. Fortunately, it would "
"rarely if ever be useful to do so. It @emph{is} valid to mix one of these "
"types of clauses with other clauses like @code{for @dots{} to} or "
"@code{while}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2047
#, no-wrap
msgid "for @var{var} being the hash-keys of @var{hash-table}"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2048
#, no-wrap
msgid "for @var{var} being the hash-values of @var{hash-table}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2052
msgid ""
"This clause iterates over the entries in @var{hash-table} with @var{var} "
"bound to each key, or value. A @samp{using} clause can bind a second "
"variable to the opposite part."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2058
#, no-wrap
msgid ""
"(cl-loop for k being the hash-keys of h\n"
" using (hash-values v)\n"
" do\n"
" (message \"key %S -> value %S\" k v))\n"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2060
#, no-wrap
msgid "for @var{var} being the key-codes of @var{keymap}"
msgstr ""
#. type: itemx
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2061
#, no-wrap
msgid "for @var{var} being the key-bindings of @var{keymap}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2067
msgid ""
"This clause iterates over the entries in @var{keymap}. The iteration does "
"not enter nested keymaps but does enter inherited (parent) keymaps. A "
"@code{using} clause can access both the codes and the bindings together."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2073
#, no-wrap
msgid ""
"(cl-loop for c being the key-codes of (current-local-map)\n"
" using (key-bindings b)\n"
" do\n"
" (message \"key %S -> binding %S\" c b))\n"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2076
#, no-wrap
msgid "for @var{var} being the key-seqs of @var{keymap}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2083
msgid ""
"This clause iterates over all key sequences defined by @var{keymap} and its "
"nested keymaps, where @var{var} takes on values which are vectors. The "
"strings or vectors are reused for each iteration, so you must copy them if "
"you wish to keep them permanently. You can add a @samp{using (key-bindings "
"@dots{})} clause to get the command bindings as well."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2084
#, no-wrap
msgid "for @var{var} being the overlays [of @var{buffer}] @dots{}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2092
msgid ""
"This clause iterates over the ``overlays'' of a buffer (the clause "
"@code{extents} is synonymous with @code{overlays}). If the @code{of} term "
"is omitted, the current buffer is used. This clause also accepts optional "
"@samp{from @var{pos}} and @samp{to @var{pos}} terms, limiting the clause to "
"overlays which overlap the specified region."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2093
#, no-wrap
msgid "for @var{var} being the intervals [of @var{object}] @dots{}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2102
msgid ""
"This clause iterates over all intervals of a buffer or string with constant "
"text properties. The variable @var{var} will be bound to conses of start "
"and end positions, where one start position is always equal to the previous "
"end position. The clause allows @code{of}, @code{from}, @code{to}, and "
"@code{property} terms, where the latter term restricts the search to just "
"the specified property. The @code{of} term may specify either a buffer or a "
"string. @xref{Text Properties,,,elisp}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2103
#, no-wrap
msgid "for @var{var} being the frames"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2107
msgid ""
"This clause iterates over all Emacs frames. The clause @code{screens} is a "
"synonym for @code{frames}. The frames are visited in @code{next-frame} "
"order starting from @code{selected-frame}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2108
#, no-wrap
msgid "for @var{var} being the windows [of @var{frame}]"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2116
msgid ""
"This clause iterates over the windows (in the Emacs sense) of the current "
"frame, or of the specified @var{frame}. It visits windows in "
"@code{next-window} order starting from @code{selected-window} (or "
"@code{frame-selected-window} if you specify @var{frame}). This clause "
"treats the minibuffer window in the same way as @code{next-window} does. "
"For greater flexibility, consider using @code{walk-windows} instead."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2117
#, no-wrap
msgid "for @var{var} being the buffers"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2120
msgid ""
"This clause iterates over all buffers in Emacs. It is equivalent to "
"@samp{for @var{var} in (buffer-list)}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2121
#, no-wrap
msgid "for @var{var} = @var{expr1} then @var{expr2}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2127
msgid ""
"This clause does a general iteration. The first time through the loop, "
"@var{var} will be bound to @var{expr1}. On the second and successive "
"iterations it will be set by evaluating @var{expr2} (which may refer to the "
"old value of @var{var}). For example, these two loops are effectively the "
"same:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2131
#, no-wrap
msgid ""
"(cl-loop for x on my-list by 'cddr do @dots{})\n"
"(cl-loop for x = my-list then (cddr x) while x do @dots{})\n"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2136
msgid ""
"Note that this type of @code{for} clause does not imply any sort of "
"terminating condition; the above example combines it with a @code{while} "
"clause to tell when to end the loop."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2139
msgid ""
"If you omit the @code{then} term, @var{expr1} is used both for the initial "
"setting and for successive settings:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2142
#, no-wrap
msgid "(cl-loop for x = (random) when (> x 0) return x)\n"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2147
msgid ""
"This loop keeps taking random numbers from the @code{(random)} function "
"until it gets a positive one, which it then returns."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2154
msgid ""
"If you include several @code{for} clauses in a row, they are treated "
"sequentially (as if by @code{let*} and @code{setq}). You can instead use "
"the word @code{and} to link the clauses, in which case they are processed in "
"parallel (as if by @code{let} and @code{cl-psetq})."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2160
#, no-wrap
msgid ""
"(cl-loop for x below 5 for y = nil then x collect (list x y))\n"
" @result{} ((0 nil) (1 1) (2 2) (3 3) (4 4))\n"
"(cl-loop for x below 5 and y = nil then x collect (list x y))\n"
" @result{} ((0 nil) (1 0) (2 1) (3 2) (4 3))\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2168
msgid ""
"In the first loop, @code{y} is set based on the value of @code{x} that was "
"just set by the previous clause; in the second loop, @code{x} and @code{y} "
"are set simultaneously so @code{y} is set based on the value of @code{x} "
"left over from the previous time through the loop."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2169
#, no-wrap
msgid "destructuring, in cl-loop"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2177
msgid ""
"Another feature of the @code{cl-loop} macro is @emph{destructuring}, similar "
"in concept to the destructuring provided by @code{defmacro} (@pxref{Argument "
"Lists}). The @var{var} part of any @code{for} clause can be given as a list "
"of variables instead of a single variable. The values produced during loop "
"execution must be lists; the values in the lists are stored in the "
"corresponding variables."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2181
#, no-wrap
msgid ""
"(cl-loop for (x y) in '((2 3) (4 5) (6 7)) collect (+ x y))\n"
" @result{} (5 9 13)\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2190
msgid ""
"In loop destructuring, if there are more values than variables the trailing "
"values are ignored, and if there are more variables than values the trailing "
"variables get the value @code{nil}. If @code{nil} is used as a variable "
"name, the corresponding values are ignored. Destructuring may be nested, "
"and dotted lists of variables like @code{(x . y)} are allowed, so for "
"example to process an alist"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2195
#, no-wrap
msgid ""
"(cl-loop for (key . value) in '((a . 1) (b . 2))\n"
" collect value)\n"
" @result{} (1 2)\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2204
msgid ""
"Aside from @code{for} clauses, there are several other loop clauses that "
"control the way the loop operates. They might be used by themselves, or in "
"conjunction with one or more @code{for} clauses."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2206
#, no-wrap
msgid "repeat @var{integer}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2209
msgid ""
"This clause simply counts up to the specified number using an internal "
"temporary variable. The loops"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2213
#, no-wrap
msgid ""
"(cl-loop repeat (1+ n) do @dots{})\n"
"(cl-loop for temp to n do @dots{})\n"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2218
msgid ""
"are identical except that the second one forces you to choose a name for a "
"variable you aren't actually going to use."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2219
#, no-wrap
msgid "while @var{condition}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2224
msgid ""
"This clause stops the loop when the specified condition (any Lisp "
"expression) becomes @code{nil}. For example, the following two loops are "
"equivalent, except for the implicit @code{nil} block that surrounds the "
"second one:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2228
#, no-wrap
msgid ""
"(while @var{cond} @var{forms}@dots{})\n"
"(cl-loop while @var{cond} do @var{forms}@dots{})\n"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2230
#, no-wrap
msgid "until @var{condition}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2233
msgid ""
"This clause stops the loop when the specified condition is true, i.e., "
"non-@code{nil}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2234
#, no-wrap
msgid "always @var{condition}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2239
msgid ""
"This clause stops the loop when the specified condition is @code{nil}. "
"Unlike @code{while}, it stops the loop using @code{return nil} so that the "
"@code{finally} clauses are not executed. If all the conditions were "
"non-@code{nil}, the loop returns @code{t}:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2244
#, no-wrap
msgid ""
"(if (cl-loop for size in size-list always (> size 10))\n"
" (only-big-sizes)\n"
" (some-small-sizes))\n"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2246
#, no-wrap
msgid "never @var{condition}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2249
msgid ""
"This clause is like @code{always}, except that the loop returns @code{t} if "
"all conditions were false, or @code{nil} otherwise."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2250
#, no-wrap
msgid "thereis @var{condition}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2254
msgid ""
"This clause stops the loop when the specified form is non-@code{nil}; in "
"this case, it returns that non-@code{nil} value. If all the values were "
"@code{nil}, the loop returns @code{nil}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2255
#, no-wrap
msgid "iter-by @var{iterator}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2259
msgid ""
"This clause iterates over the values from the specified form, an iterator "
"object. See (@pxref{Generators,,,elisp,GNU Emacs Lisp Reference Manual})."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2268
msgid ""
"These clauses cause the loop to accumulate information about the specified "
"Lisp @var{form}. The accumulated result is returned from the loop unless "
"overridden, say, by a @code{return} clause."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2270
#, no-wrap
msgid "collect @var{form}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2273
msgid ""
"This clause collects the values of @var{form} into a list. Several examples "
"of @code{collect} appear elsewhere in this manual."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2276
msgid ""
"The word @code{collecting} is a synonym for @code{collect}, and likewise for "
"the other accumulation clauses."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2277
#, no-wrap
msgid "append @var{form}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2280
msgid "This clause collects lists of values into a result list using @code{append}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2281
#, no-wrap
msgid "nconc @var{form}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2284
msgid ""
"This clause collects lists of values into a result list by destructively "
"modifying the lists rather than copying them."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2285
#, no-wrap
msgid "concat @var{form}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2289
msgid ""
"This clause concatenates the values of the specified @var{form} into a "
"string. (It and the following clause are extensions to standard Common "
"Lisp.)"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2290
#, no-wrap
msgid "vconcat @var{form}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2293
msgid ""
"This clause concatenates the values of the specified @var{form} into a "
"vector."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2294
#, no-wrap
msgid "count @var{form}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2297
msgid ""
"This clause counts the number of times the specified @var{form} evaluates to "
"a non-@code{nil} value."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2298
#, no-wrap
msgid "sum @var{form}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2301
msgid ""
"This clause accumulates the sum of the values of the specified @var{form}, "
"which must evaluate to a number."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2302
#, no-wrap
msgid "maximize @var{form}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2306
msgid ""
"This clause accumulates the maximum value of the specified @var{form}, which "
"must evaluate to a number. The return value is undefined if @code{maximize} "
"is executed zero times."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2307
#, no-wrap
msgid "minimize @var{form}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2309
msgid "This clause accumulates the minimum value of the specified @var{form}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2318
msgid ""
"Accumulation clauses can be followed by @samp{into @var{var}} to cause the "
"data to be collected into variable @var{var} (which is automatically "
"@code{let}-bound during the loop) rather than an unnamed temporary "
"variable. Also, @code{into} accumulations do not automatically imply a "
"return value. The loop must use some explicit mechanism, such as "
"@code{finally return}, to return the accumulated result."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2321
msgid ""
"It is valid for several accumulation clauses of the same type to accumulate "
"into the same place. From Steele:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2328
#, no-wrap
msgid ""
"(cl-loop for name in '(fred sue alice joe june)\n"
" for kids in '((bob ken) () () (kris sunshine) ())\n"
" collect name\n"
" append kids)\n"
" @result{} (fred bob ken sue alice joe kris sunshine june)\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2335
msgid "This section describes the remaining loop clauses."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2337
#, no-wrap
msgid "with @var{var} = @var{value}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2341
msgid ""
"This clause binds a variable to a value around the loop, but otherwise "
"leaves the variable alone during the loop. The following loops are "
"basically equivalent:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2346
#, no-wrap
msgid ""
"(cl-loop with x = 17 do @dots{})\n"
"(let ((x 17)) (cl-loop do @dots{}))\n"
"(cl-loop for x = 17 then x do @dots{})\n"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2350
msgid ""
"Naturally, the variable @var{var} might be used for some purpose in the rest "
"of the loop. For example:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2354
#, no-wrap
msgid ""
"(cl-loop for x in my-list with res = nil do (push x res)\n"
" finally return res)\n"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2362
msgid ""
"This loop inserts the elements of @code{my-list} at the front of a new list "
"being accumulated in @code{res}, then returns the list @code{res} at the end "
"of the loop. The effect is similar to that of a @code{collect} clause, but "
"the list gets reversed by virtue of the fact that elements are being pushed "
"onto the front of @code{res} rather than the end."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2366
msgid ""
"If you omit the @code{=} term, the variable is initialized to @code{nil}. "
"(Thus the @samp{= nil} in the above example is unnecessary.)"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2371
msgid ""
"Bindings made by @code{with} are sequential by default, as if by "
"@code{let*}. Just like @code{for} clauses, @code{with} clauses can be "
"linked with @code{and} to cause the bindings to be made by @code{let} "
"instead."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2372
#, no-wrap
msgid "if @var{condition} @var{clause}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2381
msgid ""
"This clause executes the following loop clause only if the specified "
"condition is true. The following @var{clause} should be an accumulation, "
"@code{do}, @code{return}, @code{if}, or @code{unless} clause. Several "
"clauses may be linked by separating them with @code{and}. These clauses may "
"be followed by @code{else} and a clause or clauses to execute if the "
"condition was false. The whole construct may optionally be followed by the "
"word @code{end} (which may be used to disambiguate an @code{else} or "
"@code{and} in a nested @code{if})."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2384
msgid ""
"The actual non-@code{nil} value of the condition form is available by the "
"name @code{it} in the ``then'' part. For example:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2400
#, no-wrap
msgid ""
"(setq funny-numbers '(6 13 -1))\n"
" @result{} (6 13 -1)\n"
"(cl-loop for x below 10\n"
" if (cl-oddp x)\n"
" collect x into odds\n"
" and if (memq x funny-numbers) return (cdr it) end\n"
" else\n"
" collect x into evens\n"
" finally return (vector odds evens))\n"
" @result{} [(1 3 5 7 9) (0 2 4 6 8)]\n"
"(setq funny-numbers '(6 7 13 -1))\n"
" @result{} (6 7 13 -1)\n"
"(cl-loop <@r{same thing again}>)\n"
" @result{} (13 -1)\n"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2411
msgid ""
"Note the use of @code{and} to put two clauses into the ``then'' part, one of "
"which is itself an @code{if} clause. Note also that @code{end}, while "
"normally optional, was necessary here to make it clear that the @code{else} "
"refers to the outermost @code{if} clause. In the first case, the loop "
"returns a vector of lists of the odd and even values of @var{x}. In the "
"second case, the odd number 7 is one of the @code{funny-numbers} so the loop "
"returns early; the actual returned value is based on the result of the "
"@code{memq} call."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2412
#, no-wrap
msgid "when @var{condition} @var{clause}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2414
msgid "This clause is just a synonym for @code{if}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2415
#, no-wrap
msgid "unless @var{condition} @var{clause}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2418
msgid ""
"The @code{unless} clause is just like @code{if} except that the sense of the "
"condition is reversed."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2419
#, no-wrap
msgid "named @var{name}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2423
msgid ""
"This clause gives a name other than @code{nil} to the implicit block "
"surrounding the loop. The @var{name} is the symbol to be used as the block "
"name."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2424
#, no-wrap
msgid "initially [do] @var{forms}@dots{}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2431
msgid ""
"This keyword introduces one or more Lisp forms which will be executed before "
"the loop itself begins (but after any variables requested by @code{for} or "
"@code{with} have been bound to their initial values). @code{initially} "
"clauses can appear anywhere; if there are several, they are executed in the "
"order they appear in the loop. The keyword @code{do} is optional."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2432
#, no-wrap
msgid "finally [do] @var{forms}@dots{}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2438
msgid ""
"This introduces Lisp forms which will be executed after the loop finishes "
"(say, on request of a @code{for} or @code{while}). @code{initially} and "
"@code{finally} clauses may appear anywhere in the loop construct, but they "
"are executed (in the specified order) at the beginning or end, respectively, "
"of the loop."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2439
#, no-wrap
msgid "finally return @var{form}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2446
msgid ""
"This says that @var{form} should be executed after the loop is done to "
"obtain a return value. (Without this, or some other clause like "
"@code{collect} or @code{return}, the loop will simply return @code{nil}.) "
"Variables bound by @code{for}, @code{with}, or @code{into} will still "
"contain their final values when @var{form} is executed."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2447
#, no-wrap
msgid "do @var{forms}@dots{}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2452
msgid ""
"The word @code{do} may be followed by any number of Lisp expressions which "
"are executed as an implicit @code{progn} in the body of the loop. Many of "
"the examples in this section illustrate the use of @code{do}."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2453
#, no-wrap
msgid "return @var{form}"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2460
msgid ""
"This clause causes the loop to return immediately. The following Lisp form "
"is evaluated to give the return value of the loop form. The @code{finally} "
"clauses, if any, are not executed. Of course, @code{return} is generally "
"used inside an @code{if} or @code{unless}, as its use in a top-level loop "
"clause would mean the loop would never get to ``loop'' more than once."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2465
msgid ""
"The clause @samp{return @var{form}} is equivalent to @samp{do (cl-return "
"@var{form})} (or @code{cl-return-from} if the loop was named). The "
"@code{return} clause is implemented a bit more efficiently, though."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2473
msgid ""
"While there is no high-level way to add user extensions to @code{cl-loop}, "
"this package does offer two properties called @code{cl-loop-handler} and "
"@code{cl-loop-for-handler} which are functions to be called when a given "
"symbol is encountered as a top-level loop clause or @code{for} clause, "
"respectively. Consult the source code in file @file{cl-macs.el} for "
"details."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2479
msgid ""
"This package's @code{cl-loop} macro is compatible with that of Common Lisp, "
"except that a few features are not implemented: @code{loop-finish} and "
"data-type specifiers. Naturally, the @code{for} clauses that iterate over "
"keymaps, overlays, intervals, frames, windows, and buffers are "
"Emacs-specific extensions."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2482
#, no-wrap
msgid "multiple values"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2496
msgid ""
"Common Lisp functions can return zero or more results. Emacs Lisp "
"functions, by contrast, always return exactly one result. This package "
"makes no attempt to emulate Common Lisp multiple return values; Emacs "
"versions of Common Lisp functions that return more than one value either "
"return just the first value (as in @code{cl-compiler-macroexpand}) or return "
"a list of values. This package @emph{does} define placeholders for the "
"Common Lisp functions that work with multiple values, but in Emacs Lisp "
"these functions simply operate on lists instead. The @code{cl-values} form, "
"for example, is a synonym for @code{list} in Emacs."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2497
#, no-wrap
msgid "cl-multiple-value-bind (var@dots{}) values-form forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2504
msgid ""
"This form evaluates @var{values-form}, which must return a list of values. "
"It then binds the @var{var}s to these respective values, as if by "
"@code{let}, and then executes the body @var{forms}. If there are more "
"@var{var}s than values, the extra @var{var}s are bound to @code{nil}. If "
"there are fewer @var{var}s than values, the excess values are ignored."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2506
#, no-wrap
msgid "cl-multiple-value-setq (var@dots{}) form"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2511
msgid ""
"This form evaluates @var{form}, which must return a list of values. It then "
"sets the @var{var}s to these respective values, as if by @code{setq}. Extra "
"@var{var}s or values are treated the same as in "
"@code{cl-multiple-value-bind}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2515
msgid ""
"Since a perfect emulation is not feasible in Emacs Lisp, this package opts "
"to keep it as simple and predictable as possible."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2525
msgid ""
"This package implements the various Common Lisp features of @code{defmacro}, "
"such as destructuring, @code{&environment}, and @code{&body}. Top-level "
"@code{&whole} is not implemented for @code{defmacro} due to technical "
"difficulties. @xref{Argument Lists}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2528
msgid "Destructuring is made available to the user by way of the following macro:"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2529
#, no-wrap
msgid "cl-destructuring-bind arglist expr forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2538
msgid ""
"This macro expands to code that executes @var{forms}, with the variables in "
"@var{arglist} bound to the list of values returned by @var{expr}. The "
"@var{arglist} can include all the features allowed for @code{cl-defmacro} "
"argument lists, including destructuring. (The @code{&environment} keyword "
"is not allowed.) The macro expansion will signal an error if @var{expr} "
"returns a list of the wrong number of arguments or with incorrect keyword "
"arguments."
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2540
#, no-wrap
msgid "compiler macros"
msgstr ""
#. type: cindex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2541
#, no-wrap
msgid "define compiler macros"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2545
msgid ""
"This package also includes the Common Lisp @code{define-compiler-macro} "
"facility, which allows you to define compile-time expansions and "
"optimizations for your functions."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2546
#, no-wrap
msgid "cl-define-compiler-macro name arglist forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2551
msgid ""
"This form is similar to @code{defmacro}, except that it only expands calls "
"to @var{name} at compile-time; calls processed by the Lisp interpreter are "
"not expanded, nor are they expanded by the @code{macroexpand} function."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2559
msgid ""
"The argument list may begin with a @code{&whole} keyword and a variable. "
"This variable is bound to the macro-call form itself, i.e., to a list of the "
"form @samp{(@var{name} @var{args}@dots{})}. If the macro expander returns "
"this form unchanged, then the compiler treats it as a normal function call. "
"This allows compiler macros to work as optimizers for special cases of a "
"function, leaving complicated cases alone."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2562
msgid ""
"For example, here is a simplified version of a definition that appears as a "
"standard part of this package:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2570
#, no-wrap
msgid ""
"(cl-define-compiler-macro cl-member (&whole form a list &rest keys)\n"
" (if (and (null keys)\n"
" (eq (car-safe a) 'quote)\n"
" (not (floatp (cadr a))))\n"
" (list 'memq a list)\n"
" form))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2580
msgid ""
"This definition causes @code{(cl-member @var{a} @var{list})} to change to a "
"call to the faster @code{memq} in the common case where @var{a} is a "
"non-floating-point constant; if @var{a} is anything else, or if there are "
"any keyword arguments in the call, then the original @code{cl-member} call "
"is left intact. (The actual compiler macro for @code{cl-member} optimizes a "
"number of other cases, including common @code{:test} predicates.)"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2582
#, no-wrap
msgid "cl-compiler-macroexpand form"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2590
msgid ""
"This function is analogous to @code{macroexpand}, except that it expands "
"compiler macros rather than regular macros. It returns @var{form} unchanged "
"if it is not a call to a function for which a compiler macro has been "
"defined, or if that compiler macro decided to punt by returning its "
"@code{&whole} argument. Like @code{macroexpand}, it expands repeatedly "
"until it reaches a form for which no further expansion is possible."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2595
msgid ""
"@xref{Macro Bindings}, for descriptions of the @code{cl-macrolet} and "
"@code{cl-symbol-macrolet} forms for making ``local'' macro definitions."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2607
msgid ""
"Common Lisp includes a complex and powerful ``declaration'' mechanism that "
"allows you to give the compiler special hints about the types of data that "
"will be stored in particular variables, and about the ways those variables "
"and functions will be used. This package defines versions of all the Common "
"Lisp declaration forms: @code{declare}, @code{locally}, @code{proclaim}, "
"@code{declaim}, and @code{the}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2611
msgid ""
"Most of the Common Lisp declarations are not currently useful in Emacs "
"Lisp. For example, the byte-code system provides little opportunity to "
"benefit from type information."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2618
msgid ""
"A few declarations are meaningful when byte compiler optimizations are "
"enabled, as they are by the default. Otherwise these declarations will "
"effectively be ignored."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2619
#, no-wrap
msgid "cl-proclaim decl-spec"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2623
msgid ""
"This function records a ``global'' declaration specified by "
"@var{decl-spec}. Since @code{cl-proclaim} is a function, @var{decl-spec} is "
"evaluated and thus should normally be quoted."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2625
#, no-wrap
msgid "cl-declaim decl-specs@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2634
msgid ""
"This macro is like @code{cl-proclaim}, except that it takes any number of "
"@var{decl-spec} arguments, and the arguments are unevaluated and unquoted. "
"The @code{cl-declaim} macro also puts @code{(cl-eval-when (compile load "
"eval) @dots{})} around the declarations so that they will be registered at "
"compile-time as well as at run-time. (This is vital, since normally the "
"declarations are meant to influence the way the compiler treats the rest of "
"the file that contains the @code{cl-declaim} form.)"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2636
#, no-wrap
msgid "cl-declare decl-specs@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2643
msgid ""
"This macro is used to make declarations within functions and other code. "
"Common Lisp allows declarations in various locations, generally at the "
"beginning of any of the many ``implicit @code{progn}s'' throughout Lisp "
"syntax, such as function bodies, @code{let} bodies, etc. Currently the only "
"declaration understood by @code{cl-declare} is @code{special}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2645
#, no-wrap
msgid "cl-locally declarations@dots{} forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2647
msgid "In this package, @code{cl-locally} is no different from @code{progn}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2649
#, no-wrap
msgid "cl-the type form"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2654
msgid ""
"@code{cl-the} returns the value of @code{form}, first checking (if "
"optimization settings permit) that it is of type @code{type}. Future "
"byte-compiler optimizations may also make use of this information to improve "
"runtime efficiency."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2662
msgid ""
"For example, @code{mapcar} can map over both lists and arrays. It is hard "
"for the compiler to expand @code{mapcar} into an in-line loop unless it "
"knows whether the sequence will be a list or an array ahead of time. With "
"@code{(mapcar 'car (cl-the vector foo))}, a future compiler would have "
"enough information to expand the loop in-line. For now, Emacs Lisp will "
"treat the above code as exactly equivalent to @code{(mapcar 'car foo)}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2671
msgid ""
"Each @var{decl-spec} in a @code{cl-proclaim}, @code{cl-declaim}, or "
"@code{cl-declare} should be a list beginning with a symbol that says what "
"kind of declaration it is. This package currently understands "
"@code{special}, @code{inline}, @code{notinline}, @code{optimize}, and "
"@code{warn} declarations. (The @code{warn} declaration is an extension of "
"standard Common Lisp.) Other Common Lisp declarations, such as @code{type} "
"and @code{ftype}, are silently ignored."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2673
#, no-wrap
msgid "special"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2682
msgid ""
"Since all variables in Emacs Lisp are ``special'' (in the Common Lisp "
"sense), @code{special} declarations are only advisory. They simply tell the "
"byte compiler that the specified variables are intentionally being referred "
"to without being bound in the body of the function. The compiler normally "
"emits warnings for such references, since they could be typographical errors "
"for references to local variables."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2685
msgid ""
"The declaration @code{(cl-declare (special @var{var1} @var{var2}))} is "
"equivalent to @code{(defvar @var{var1}) (defvar @var{var2})}."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2689
msgid ""
"In top-level contexts, it is generally better to write @code{(defvar "
"@var{var})} than @code{(cl-declaim (special @var{var}))}, since "
"@code{defvar} makes your intentions clearer."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2690
#, no-wrap
msgid "inline"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2699
msgid ""
"The @code{inline} @var{decl-spec} lists one or more functions whose bodies "
"should be expanded ``in-line'' into calling functions whenever the compiler "
"is able to arrange for it. For example, the function @code{cl-acons} is "
"declared @code{inline} by this package so that the form @code{(cl-acons "
"@var{key} @var{value} @var{alist})} will expand directly into @code{(cons "
"(cons @var{key} @var{value}) @var{alist})} when it is called in user "
"functions, so as to save function calls."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2703
msgid ""
"The following declarations are all equivalent. Note that the "
"@code{defsubst} form is a convenient way to define a function and declare it "
"inline all at once."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2709
#, no-wrap
msgid ""
"(cl-declaim (inline foo bar))\n"
"(cl-eval-when (compile load eval)\n"
" (cl-proclaim '(inline foo bar)))\n"
"(defsubst foo (@dots{}) @dots{}) ; instead of defun\n"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2716
msgid ""
"@strong{Please note:} this declaration remains in effect after the "
"containing source file is done. It is correct to use it to request that a "
"function you have defined should be inlined, but it is impolite to use it to "
"request inlining of an external function."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2722
msgid ""
"In Common Lisp, it is possible to use @code{(declare (inline @dots{}))} "
"before a particular call to a function to cause just that call to be "
"inlined; the current byte compilers provide no way to implement this, so "
"@code{(cl-declare (inline @dots{}))} is currently ignored by this package."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2723
#, no-wrap
msgid "notinline"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2727
msgid ""
"The @code{notinline} declaration lists functions which should not be inlined "
"after all; it cancels a previous @code{inline} declaration."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2728
#, no-wrap
msgid "optimize"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2731
msgid ""
"This declaration controls how much optimization is performed by the "
"compiler."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2738
msgid ""
"The word @code{optimize} is followed by any number of lists like "
"@code{(speed 3)} or @code{(safety 2)}. Common Lisp defines several "
"optimization ``qualities''; this package ignores all but @code{speed} and "
"@code{safety}. The value of a quality should be an integer from 0 to 3, "
"with 0 meaning ``unimportant'' and 3 meaning ``very important''. The "
"default level for both qualities is 1."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2749
msgid ""
"In this package, the @code{speed} quality is tied to the "
"@code{byte-optimize} flag, which is set to @code{nil} for @code{(speed 0)} "
"and to @code{t} for higher settings; and the @code{safety} quality is tied "
"to the @code{byte-compile-delete-errors} flag, which is set to @code{nil} "
"for @code{(safety 3)} and to @code{t} for all lower settings. (The latter "
"flag controls whether the compiler is allowed to optimize out code whose "
"only side-effect could be to signal an error, e.g., rewriting @code{(progn "
"foo bar)} to @code{bar} when it is not known whether @code{foo} will be "
"bound at run-time.)"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2755
msgid ""
"Note that even compiling with @code{(safety 0)}, the Emacs byte-code system "
"provides sufficient checking to prevent real harm from being done. For "
"example, barring serious bugs in Emacs itself, Emacs will not crash with a "
"segmentation fault just because of an error in a fully-optimized Lisp "
"program."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2763
msgid ""
"The @code{optimize} declaration is normally used in a top-level "
"@code{cl-proclaim} or @code{cl-declaim} in a file; Common Lisp allows it to "
"be used with @code{declare} to set the level of optimization locally for a "
"given form, but this will not work correctly with the current "
"byte-compiler. (The @code{cl-declare} will set the new optimization level, "
"but that level will not automatically be unset after the enclosing form is "
"done.)"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2764
#, no-wrap
msgid "warn"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2774
msgid ""
"This declaration controls what sorts of warnings are generated by the byte "
"compiler. The word @code{warn} is followed by any number of ``warning "
"qualities'', similar in form to optimization qualities. The currently "
"supported warning types are @code{redefine}, @code{callargs}, "
"@code{unresolved}, and @code{free-vars}; in the current system, a value of 0 "
"will disable these warnings and any higher value will enable them. See the "
"documentation of the variable @code{byte-compile-warnings} for more details."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2782
msgid ""
"This package defines several symbol-related features that were missing from "
"Emacs Lisp."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2786 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:2788
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2789
#, no-wrap
msgid "Property Lists"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2786
msgid "@code{cl-get}, @code{cl-remprop}, @code{cl-getf}, @code{cl-remf}."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2786 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:2869
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2870
#, no-wrap
msgid "Creating Symbols"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2786
msgid "@code{cl-gensym}, @code{cl-gentemp}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2796
msgid ""
"These functions augment the standard Emacs Lisp functions @code{get} and "
"@code{put} for operating on properties attached to symbols. There are also "
"functions for working with property lists as first-class data structures not "
"attached to particular symbols."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2797
#, no-wrap
msgid "cl-get symbol property &optional default"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2803
msgid ""
"This function is like @code{get}, except that if the property is not found, "
"the @var{default} argument provides the return value. (The Emacs Lisp "
"@code{get} function always uses @code{nil} as the default; this package's "
"@code{cl-get} is equivalent to Common Lisp's @code{get}.)"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2806
msgid ""
"The @code{cl-get} function is @code{setf}-able; when used in this fashion, "
"the @var{default} argument is allowed but ignored."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2808
#, no-wrap
msgid "cl-remprop symbol property"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2817
msgid ""
"This function removes the entry for @var{property} from the property list of "
"@var{symbol}. It returns a true value if the property was indeed found and "
"removed, or @code{nil} if there was no such property. (This function was "
"probably omitted from Emacs originally because, since @code{get} did not "
"allow a @var{default}, it was very difficult to distinguish between a "
"missing property and a property whose value was @code{nil}; thus, setting a "
"property to @code{nil} was close enough to @code{cl-remprop} for most "
"purposes.)"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2819
#, no-wrap
msgid "cl-getf place property &optional default"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2826
msgid ""
"This function scans the list @var{place} as if it were a property list, "
"i.e., a list of alternating property names and values. If an even-numbered "
"element of @var{place} is found which is @code{eq} to @var{property}, the "
"following odd-numbered element is returned. Otherwise, @var{default} is "
"returned (or @code{nil} if no default is given)."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2828
msgid "In particular,"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2831
#, no-wrap
msgid "(get sym prop) @equiv{} (cl-getf (symbol-plist sym) prop)\n"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2839
msgid ""
"It is valid to use @code{cl-getf} as a @code{setf} place, in which case its "
"@var{place} argument must itself be a valid @code{setf} place. The "
"@var{default} argument, if any, is ignored in this context. The effect is "
"to change (via @code{setcar}) the value cell in the list that corresponds to "
"@var{property}, or to cons a new property-value pair onto the list if the "
"property is not yet present."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2842
#, no-wrap
msgid "(put sym prop val) @equiv{} (setf (cl-getf (symbol-plist sym) prop) val)\n"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2846
msgid ""
"The @code{get} and @code{cl-get} functions are also @code{setf}-able. The "
"fact that @code{default} is ignored can sometimes be useful:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2849
#, no-wrap
msgid "(cl-incf (cl-get 'foo 'usage-count 0))\n"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2853
msgid ""
"Here, symbol @code{foo}'s @code{usage-count} property is incremented if it "
"exists, or set to 1 (an incremented 0) otherwise."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2857
msgid ""
"When not used as a @code{setf} form, @code{cl-getf} is just a regular "
"function and its @var{place} argument can actually be any Lisp expression."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2859
#, no-wrap
msgid "cl-remf place property"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2867
msgid ""
"This macro removes the property-value pair for @var{property} from the "
"property list stored at @var{place}, which is any @code{setf}-able place "
"expression. It returns true if the property was found. Note that if "
"@var{property} happens to be first on the list, this will effectively do a "
"@code{(setf @var{place} (cddr @var{place}))}, whereas if it occurs later, "
"this simply uses @code{setcdr} to splice out the property and value cells."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2875
msgid ""
"These functions create unique symbols, typically for use as temporary "
"variables."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2876
#, no-wrap
msgid "cl-gensym &optional x"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2886
msgid ""
"This function creates a new, uninterned symbol (using @code{make-symbol}) "
"with a unique name. (The name of an uninterned symbol is relevant only if "
"the symbol is printed.) By default, the name is generated from an "
"increasing sequence of numbers, @samp{G1000}, @samp{G1001}, @samp{G1002}, "
"etc. If the optional argument @var{x} is a string, that string is used as a "
"prefix instead of @samp{G}. Uninterned symbols are used in macro expansions "
"for temporary variables, to ensure that their names will not conflict with "
"``real'' variables in the user's code."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2890
msgid ""
"(Internally, the variable @code{cl--gensym-counter} holds the counter used "
"to generate names. It is initialized with zero and incremented after each "
"use.)"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2892
#, no-wrap
msgid "cl-gentemp &optional x"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2897
msgid ""
"This function is like @code{cl-gensym}, except that it produces a new "
"@emph{interned} symbol. If the symbol that is generated already exists, the "
"function keeps incrementing the counter and trying again until a new symbol "
"is generated."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2904
msgid ""
"This package automatically creates all keywords that are called for by "
"@code{&key} argument specifiers, and discourages the use of keywords as data "
"unrelated to keyword arguments, so the related function @code{defkeyword} "
"(to create self-quoting keyword symbols) is not provided."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2911
msgid ""
"This section defines a few simple Common Lisp operations on numbers that "
"were left out of Emacs Lisp."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2917 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:2919
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2920
#, no-wrap
msgid "Predicates on Numbers"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2917
msgid "@code{cl-plusp}, @code{cl-oddp}, etc."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2917 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:2952
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2953
#, no-wrap
msgid "Numerical Functions"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2917
msgid "@code{cl-floor}, @code{cl-ceiling}, etc."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2917 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:3044
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3045
#, no-wrap
msgid "Random Numbers"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2917
msgid "@code{cl-random}, @code{cl-make-random-state}."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2917 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:3100
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3101
#, no-wrap
msgid "Implementation Parameters"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2917
msgid "@code{cl-most-positive-float}, etc."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2925
msgid ""
"These functions return @code{t} if the specified condition is true of the "
"numerical argument, or @code{nil} otherwise."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2926
#, no-wrap
msgid "cl-plusp number"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2929
msgid ""
"This predicate tests whether @var{number} is positive. It is an error if "
"the argument is not a number."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2931
#, no-wrap
msgid "cl-minusp number"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2934
msgid ""
"This predicate tests whether @var{number} is negative. It is an error if "
"the argument is not a number."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2936
#, no-wrap
msgid "cl-oddp integer"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2939
msgid ""
"This predicate tests whether @var{integer} is odd. It is an error if the "
"argument is not an integer."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2941
#, no-wrap
msgid "cl-evenp integer"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2944
msgid ""
"This predicate tests whether @var{integer} is even. It is an error if the "
"argument is not an integer."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2946
#, no-wrap
msgid "cl-digit-char-p char radix"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2950
msgid ""
"Test if @var{char} is a digit in the specified @var{radix} (default is 10). "
"If it is, return the numerical value of digit @var{char} in @var{radix}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2957
msgid "These functions perform various arithmetic operations on numbers."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2958
#, no-wrap
msgid "cl-gcd &rest integers"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2962
msgid ""
"This function returns the Greatest Common Divisor of the arguments. For one "
"argument, it returns the absolute value of that argument. For zero "
"arguments, it returns zero."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2964
#, no-wrap
msgid "cl-lcm &rest integers"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2968
msgid ""
"This function returns the Least Common Multiple of the arguments. For one "
"argument, it returns the absolute value of that argument. For zero "
"arguments, it returns one."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2970
#, no-wrap
msgid "cl-isqrt integer"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2974
msgid ""
"This function computes the ``integer square root'' of its integer argument, "
"i.e., the greatest integer less than or equal to the true square root of the "
"argument."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2976
#, no-wrap
msgid "cl-floor number &optional divisor"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2985
msgid ""
"With one argument, @code{cl-floor} returns a list of two numbers: The "
"argument rounded down (toward minus infinity) to an integer, and the "
"``remainder'' which would have to be added back to the first return value to "
"yield the argument again. If the argument is an integer @var{x}, the result "
"is always the list @code{(@var{x} 0)}. If the argument is a floating-point "
"number, the first result is a Lisp integer and the second is a Lisp float "
"between 0 (inclusive) and 1 (exclusive)."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2994
msgid ""
"With two arguments, @code{cl-floor} divides @var{number} by @var{divisor}, "
"and returns the floor of the quotient and the corresponding remainder as a "
"list of two numbers. If @code{(cl-floor @var{x} @var{y})} returns "
"@code{(@var{q} @var{r})}, then @code{@var{q}*@var{y} + @var{r} = @var{x}}, "
"with @var{r} between 0 (inclusive) and @var{r} (exclusive). Also, note that "
"@code{(cl-floor @var{x})} is exactly equivalent to @code{(cl-floor @var{x} "
"1)}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:2998
msgid ""
"This function is entirely compatible with Common Lisp's @code{floor} "
"function, except that it returns the two results in a list since Emacs Lisp "
"does not support multiple-valued functions."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3000
#, no-wrap
msgid "cl-ceiling number &optional divisor"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3005
msgid ""
"This function implements the Common Lisp @code{ceiling} function, which is "
"analogous to @code{floor} except that it rounds the argument or quotient of "
"the arguments up toward plus infinity. The remainder will be between 0 and "
"minus @var{r}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3007
#, no-wrap
msgid "cl-truncate number &optional divisor"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3014
msgid ""
"This function implements the Common Lisp @code{truncate} function, which is "
"analogous to @code{floor} except that it rounds the argument or quotient of "
"the arguments toward zero. Thus it is equivalent to @code{cl-floor} if the "
"argument or quotient is positive, or to @code{cl-ceiling} otherwise. The "
"remainder has the same sign as @var{number}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3016
#, no-wrap
msgid "cl-round number &optional divisor"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3022
msgid ""
"This function implements the Common Lisp @code{round} function, which is "
"analogous to @code{floor} except that it rounds the argument or quotient of "
"the arguments to the nearest integer. In the case of a tie (the argument or "
"quotient is exactly halfway between two integers), it rounds to the even "
"integer."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3024
#, no-wrap
msgid "cl-mod number divisor"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3027
msgid ""
"This function returns the same value as the second return value of "
"@code{cl-floor}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3029
#, no-wrap
msgid "cl-rem number divisor"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3032
msgid ""
"This function returns the same value as the second return value of "
"@code{cl-truncate}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3034
#, no-wrap
msgid "cl-parse-integer string &key start end radix junk-allowed"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3042
msgid ""
"This function implements the Common Lisp @code{parse-integer} function. It "
"parses an integer in the specified @var{radix} from the substring of "
"@var{string} between @var{start} and @var{end}. Any leading and trailing "
"whitespace chars are ignored. The function signals an error if the "
"substring between @var{start} and @var{end} cannot be parsed as an integer, "
"unless @var{junk-allowed} is non-@code{nil}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3054
msgid ""
"This package also provides an implementation of the Common Lisp random "
"number generator. It uses its own additive-congruential algorithm, which is "
"much more likely to give statistically clean random numbers than the simple "
"generators supplied by many operating systems."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3055
#, no-wrap
msgid "cl-random number &optional state"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3067
msgid ""
"This function returns a random nonnegative number less than @var{number}, "
"and of the same type (either integer or floating-point). The @var{state} "
"argument should be a @code{random-state} object that holds the state of the "
"random number generator. The function modifies this state object as a side "
"effect. If @var{state} is omitted, it defaults to the internal variable "
"@code{cl--random-state}, which contains a pre-initialized default "
"@code{random-state} object. (Since any number of programs in the Emacs "
"process may be accessing @code{cl--random-state} in interleaved fashion, the "
"sequence generated from this will be irreproducible for all intents and "
"purposes.)"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3069
#, no-wrap
msgid "cl-make-random-state &optional state"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3077
msgid ""
"This function creates or copies a @code{random-state} object. If "
"@var{state} is omitted or @code{nil}, it returns a new copy of "
"@code{cl--random-state}. This is a copy in the sense that future sequences "
"of calls to @code{(cl-random @var{n})} and @code{(cl-random @var{n} "
"@var{s})} (where @var{s} is the new random-state object) will return "
"identical sequences of random numbers."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3085
msgid ""
"If @var{state} is a @code{random-state} object, this function returns a copy "
"of that object. If @var{state} is @code{t}, this function returns a new "
"@code{random-state} object seeded from the date and time. As an extension "
"to Common Lisp, @var{state} may also be an integer in which case the new "
"object is seeded from that integer; each different integer seed will result "
"in a completely different sequence of random numbers."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3093
msgid ""
"It is valid to print a @code{random-state} object to a buffer or file and "
"later read it back with @code{read}. If a program wishes to use a sequence "
"of pseudo-random numbers which can be reproduced later for debugging, it can "
"call @code{(cl-make-random-state t)} to get a new sequence, then print this "
"sequence to a file. When the program is later rerun, it can read the "
"original run's random-state from the file."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3095
#, no-wrap
msgid "cl-random-state-p object"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3098
msgid ""
"This predicate returns @code{t} if @var{object} is a @code{random-state} "
"object, or @code{nil} otherwise."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3106
msgid ""
"This package defines several useful constants having to do with "
"floating-point numbers."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3111
msgid ""
"It determines their values by exercising the computer's floating-point "
"arithmetic in various ways. Because this operation might be slow, the code "
"for initializing them is kept in a separate function that must be called "
"before the parameters can be used."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3112
#, no-wrap
msgid "cl-float-limits"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3118
msgid ""
"This function makes sure that the Common Lisp floating-point parameters like "
"@code{cl-most-positive-float} have been initialized. Until it is called, "
"these parameters have unspecified values. If the parameters have already "
"been initialized, the function returns immediately."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3127
msgid ""
"Since true Common Lisp supports up to four different kinds of floating-point "
"numbers, it has families of constants like "
"@code{most-positive-single-float}, @code{most-positive-double-float}, "
"@code{most-positive-long-float}, and so on. This package uses just one set "
"of constants because Emacs has only one kind of floating-point number, "
"namely the IEEE binary64 floating-point format. @xref{Float "
"Basics,,,elisp,GNU Emacs Lisp Reference Manual}."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3128
#, no-wrap
msgid "cl-most-positive-float"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3132
msgid ""
"This constant equals the largest finite value a Lisp float can hold. For "
"IEEE binary64 format, this equals @code{(- (expt 2 1024) (expt 2 971))}, "
"which equals @code{1.7976931348623157e+308}."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3134
#, no-wrap
msgid "cl-most-negative-float"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3137
msgid ""
"This constant equals the most negative finite value a Lisp float can hold. "
"For IEEE binary64 format, this equals @code{(- cl-most-positive-float)}."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3139
#, no-wrap
msgid "cl-least-positive-normalized-float"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3144
msgid ""
"This constant equals the smallest positive Lisp float that is "
"@dfn{normalized}, i.e., that has full precision. For IEEE binary64 format, "
"this equals @code{(expt 2 -1022)}, which equals "
"@code{2.2250738585072014e-308}."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3146
#, no-wrap
msgid "cl-least-positive-float"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3151
msgid ""
"This constant equals the smallest Lisp float value greater than zero. For "
"IEEE binary64 format, this equals @code{5e-324} (which equals @code{(expt 2 "
"-1074)}) if subnormal numbers are supported, and "
"@code{cl-least-positive-normalized-float} otherwise."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3153
#, no-wrap
msgid "cl-least-negative-float"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3155
msgid "This constant is the negative counterpart of @code{cl-least-positive-float}."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3157
#, no-wrap
msgid "cl-least-negative-normalized-float"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3160
msgid ""
"This constant is the negative counterpart of "
"@code{cl-least-positive-normalized-float}."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3162
#, no-wrap
msgid "cl-float-epsilon"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3167
msgid ""
"This constant is the smallest positive Lisp float that can be added to 1.0 "
"to produce a distinct value. Adding a smaller number to 1.0 will yield 1.0 "
"again due to roundoff. For IEEE binary64 format, this equals @code{(expt 2 "
"-52)}, which equals @code{2.220446049250313e-16}."
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3169
#, no-wrap
msgid "cl-float-negative-epsilon"
msgstr ""
#. type: defvar
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3173
msgid ""
"This is the smallest positive value that can be subtracted from 1.0 to "
"produce a distinct value. For IEEE binary64 format, this equals @code{(expt "
"2 -53)}, which equals @code{1.1102230246251565e-16}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3183
msgid ""
"Common Lisp defines a number of functions that operate on @dfn{sequences}, "
"which are either lists, strings, or vectors. Emacs Lisp includes a few of "
"these, notably @code{elt} and @code{length}; this package defines most of "
"the rest."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3190 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:3192
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3193
#, no-wrap
msgid "Sequence Basics"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3190
msgid "Arguments shared by all sequence functions."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3190 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:3269
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3270
#, no-wrap
msgid "Mapping over Sequences"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3190
msgid "@code{cl-mapcar}, @code{cl-map}, @code{cl-maplist}, etc."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3190 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:3414
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3415
#, no-wrap
msgid "Sequence Functions"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3190
msgid "@code{cl-subseq}, @code{cl-remove}, @code{cl-substitute}, etc."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3190 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:3542
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3543
#, no-wrap
msgid "Searching Sequences"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3190
msgid "@code{cl-find}, @code{cl-count}, @code{cl-search}, etc."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3190 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:3611
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3612
#, no-wrap
msgid "Sorting Sequences"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3190
msgid "@code{cl-sort}, @code{cl-stable-sort}, @code{cl-merge}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3199
msgid ""
"Many of the sequence functions take keyword arguments; @pxref{Argument "
"Lists}. All keyword arguments are optional and, if specified, may appear in "
"any order."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3208
msgid ""
"The @code{:key} argument should be passed either @code{nil}, or a function "
"of one argument. This key function is used as a filter through which the "
"elements of the sequence are seen; for example, @code{(cl-find x y :key "
"'car)} is similar to @code{(cl-assoc x y)}. It searches for an element of "
"the list whose @sc{car} equals @code{x}, rather than for an element which "
"equals @code{x} itself. If @code{:key} is omitted or @code{nil}, the filter "
"is effectively the identity function."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3220
msgid ""
"The @code{:test} and @code{:test-not} arguments should be either @code{nil}, "
"or functions of two arguments. The test function is used to compare two "
"sequence elements, or to compare a search value with sequence elements. "
"(The two values are passed to the test function in the same order as the "
"original sequence function arguments from which they are derived, or, if "
"they both come from the same sequence, in the same order as they appear in "
"that sequence.) The @code{:test} argument specifies a function which must "
"return true (non-@code{nil}) to indicate a match; instead, you may use "
"@code{:test-not} to give a function which returns @emph{false} to indicate a "
"match. The default test function is @code{eql}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3226
msgid ""
"Many functions that take @var{item} and @code{:test} or @code{:test-not} "
"arguments also come in @code{-if} and @code{-if-not} varieties, where a "
"@var{predicate} function is passed instead of @var{item}, and sequence "
"elements match if the predicate returns true on them (or false in the case "
"of @code{-if-not}). For example:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3229
#, no-wrap
msgid "(cl-remove 0 seq :test '=) @equiv{} (cl-remove-if 'zerop seq)\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3233
msgid "to remove all zeros from sequence @code{seq}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3245
msgid ""
"Some operations can work on a subsequence of the argument sequence; these "
"function take @code{:start} and @code{:end} arguments, which default to zero "
"and the length of the sequence, respectively. Only elements between "
"@var{start} (inclusive) and @var{end} (exclusive) are affected by the "
"operation. The @var{end} argument may be passed @code{nil} to signify the "
"length of the sequence; otherwise, both @var{start} and @var{end} must be "
"integers, with @code{0 <= @var{start} <= @var{end} <= (length @var{seq})}. "
"If the function takes two sequence arguments, the limits are defined by "
"keywords @code{:start1} and @code{:end1} for the first, and @code{:start2} "
"and @code{:end2} for the second."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3251
msgid ""
"A few functions accept a @code{:from-end} argument, which, if "
"non-@code{nil}, causes the operation to go from right-to-left through the "
"sequence instead of left-to-right, and a @code{:count} argument, which "
"specifies an integer maximum number of elements to be removed or otherwise "
"processed."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3261
msgid ""
"The sequence functions make no guarantees about the order in which the "
"@code{:test}, @code{:test-not}, and @code{:key} functions are called on "
"various elements. Therefore, it is a bad idea to depend on side effects of "
"these functions. For example, @code{:from-end} may cause the sequence to be "
"scanned actually in reverse, or it may be scanned forwards but computing a "
"result ``as if'' it were scanned backwards. (Some functions, like "
"@code{cl-mapcar} and @code{cl-every}, @emph{do} specify exactly the order in "
"which the function is called so side effects are perfectly acceptable in "
"those cases.)"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3268
msgid ""
"Strings may contain ``text properties'' as well as character data. Except "
"as noted, it is undefined whether or not text properties are preserved by "
"sequence functions. For example, @code{(cl-remove ?A @var{str})} may or may "
"not preserve the properties of the characters copied from @var{str} into the "
"result."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3276
msgid ""
"These functions ``map'' the function you specify over the elements of lists "
"or arrays. They are all variations on the theme of the built-in function "
"@code{mapcar}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3277
#, no-wrap
msgid "cl-mapcar function seq &rest more-seqs"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3287
msgid ""
"This function calls @var{function} on successive parallel sets of elements "
"from its argument sequences. Given a single @var{seq} argument it is "
"equivalent to @code{mapcar}; given @var{n} sequences, it calls the function "
"with the first elements of each of the sequences as the @var{n} arguments to "
"yield the first element of the result list, then with the second elements, "
"and so on. The mapping stops as soon as the shortest sequence runs out. "
"The argument sequences may be any mixture of lists, strings, and vectors; "
"the return sequence is always a list."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3292
msgid ""
"Common Lisp's @code{mapcar} accepts multiple arguments but works only on "
"lists; Emacs Lisp's @code{mapcar} accepts a single sequence argument. This "
"package's @code{cl-mapcar} works as a compatible superset of both."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3294
#, no-wrap
msgid "cl-map result-type function seq &rest more-seqs"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3302
msgid ""
"This function maps @var{function} over the argument sequences, just like "
"@code{cl-mapcar}, but it returns a sequence of type @var{result-type} rather "
"than a list. @var{result-type} must be one of the following symbols: "
"@code{vector}, @code{string}, @code{list} (in which case the effect is the "
"same as for @code{cl-mapcar}), or @code{nil} (in which case the results are "
"thrown away and @code{cl-map} returns @code{nil})."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3304
#, no-wrap
msgid "cl-maplist function list &rest more-lists"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3311
msgid ""
"This function calls @var{function} on each of its argument lists, then on "
"the @sc{cdr}s of those lists, and so on, until the shortest list runs out. "
"The results are returned in the form of a list. Thus, @code{cl-maplist} is "
"like @code{cl-mapcar} except that it passes in the list pointers themselves "
"rather than the @sc{car}s of the advancing pointers."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3313
#, no-wrap
msgid "cl-mapc function seq &rest more-seqs"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3322
msgid ""
"This function is like @code{cl-mapcar}, except that the values returned by "
"@var{function} are ignored and thrown away rather than being collected into "
"a list. The return value of @code{cl-mapc} is @var{seq}, the first "
"sequence. This function is more general than the Emacs primitive "
"@code{mapc}. (Note that this function is called @code{cl-mapc} even in "
"@file{cl.el}, rather than @code{mapc*} as you might expect.)"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3324
#, no-wrap
msgid "cl-mapl function list &rest more-lists"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3327
msgid ""
"This function is like @code{cl-maplist}, except that it throws away the "
"values returned by @var{function}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3329
#, no-wrap
msgid "cl-mapcan function seq &rest more-seqs"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3333
msgid ""
"This function is like @code{cl-mapcar}, except that it concatenates the "
"return values (which must be lists) using @code{nconc}, rather than simply "
"collecting them into a list."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3335
#, no-wrap
msgid "cl-mapcon function list &rest more-lists"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3338
msgid ""
"This function is like @code{cl-maplist}, except that it concatenates the "
"return values using @code{nconc}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3340
#, no-wrap
msgid "cl-some predicate seq &rest more-seqs"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3349
msgid ""
"This function calls @var{predicate} on each element of @var{seq} in turn; if "
"@var{predicate} returns a non-@code{nil} value, @code{cl-some} returns that "
"value, otherwise it returns @code{nil}. Given several sequence arguments, "
"it steps through the sequences in parallel until the shortest one runs out, "
"just as in @code{cl-mapcar}. You can rely on the left-to-right order in "
"which the elements are visited, and on the fact that mapping stops "
"immediately as soon as @var{predicate} returns non-@code{nil}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3351
#, no-wrap
msgid "cl-every predicate seq &rest more-seqs"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3356
msgid ""
"This function calls @var{predicate} on each element of the sequence(s) in "
"turn; it returns @code{nil} as soon as @var{predicate} returns @code{nil} "
"for any element, or @code{t} if the predicate was true for all elements."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3358
#, no-wrap
msgid "cl-notany predicate seq &rest more-seqs"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3363
msgid ""
"This function calls @var{predicate} on each element of the sequence(s) in "
"turn; it returns @code{nil} as soon as @var{predicate} returns a "
"non-@code{nil} value for any element, or @code{t} if the predicate was "
"@code{nil} for all elements."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3365
#, no-wrap
msgid "cl-notevery predicate seq &rest more-seqs"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3370
msgid ""
"This function calls @var{predicate} on each element of the sequence(s) in "
"turn; it returns a non-@code{nil} value as soon as @var{predicate} returns "
"@code{nil} for any element, or @code{nil} if the predicate was true for all "
"elements."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3372
#, no-wrap
msgid "cl-reduce function seq @t{&key :from-end :start :end :initial-value :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3377
msgid ""
"This function returns the result of calling @var{function} on the first and "
"second element of @var{seq}, then calling @var{function} with that result "
"and the third element of @var{seq}, then with that result and the third "
"element of @var{seq}, etc."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3385
msgid ""
"Here is an example. Suppose @var{function} is @code{*} and @var{seq} is the "
"list @code{(2 3 4 5)}. The first two elements of the list are combined with "
"@code{(* 2 3) = 6}; this is combined with the next element, @code{(* 6 4) = "
"24}, and that is combined with the final element: @code{(* 24 5) = 120}. "
"Note that the @code{*} function happens to be self-reducing, so that "
"@code{(* 2 3 4 5)} has the same effect as an explicit call to "
"@code{cl-reduce}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3388
msgid ""
"If @code{:from-end} is true, the reduction is right-associative instead of "
"left-associative:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3394
#, no-wrap
msgid ""
"(cl-reduce '- '(1 2 3 4))\n"
" @equiv{} (- (- (- 1 2) 3) 4) @result{} -8\n"
"(cl-reduce '- '(1 2 3 4) :from-end t)\n"
" @equiv{} (- 1 (- 2 (- 3 4))) @result{} -2\n"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3398
msgid ""
"If @code{:key} is specified, it is a function of one argument, which is "
"called on each of the sequence elements in turn."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3402
msgid ""
"If @code{:initial-value} is specified, it is effectively added to the front "
"(or rear in the case of @code{:from-end}) of the sequence. The @code{:key} "
"function is @emph{not} applied to the initial value."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3407
msgid ""
"If the sequence, including the initial value, has exactly one element then "
"that element is returned without ever calling @var{function}. If the "
"sequence is empty (and there is no initial value), then @var{function} is "
"called with no arguments to obtain the return value."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3413
msgid ""
"All of these mapping operations can be expressed conveniently in terms of "
"the @code{cl-loop} macro. In compiled code, @code{cl-loop} will be faster "
"since it generates the loop as in-line code with no function calls."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3420
msgid ""
"This section describes a number of Common Lisp functions for operating on "
"sequences."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3421
#, no-wrap
msgid "cl-subseq sequence start &optional end"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3429
msgid ""
"This function returns a given subsequence of the argument @var{sequence}, "
"which may be a list, string, or vector. The indices @var{start} and "
"@var{end} must be in range, and @var{start} must be no greater than "
"@var{end}. If @var{end} is omitted, it defaults to the length of the "
"sequence. The return value is always a copy; it does not share structure "
"with @var{sequence}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3436
msgid ""
"As an extension to Common Lisp, @var{start} and/or @var{end} may be "
"negative, in which case they represent a distance back from the end of the "
"sequence. This is for compatibility with Emacs's @code{substring} "
"function. Note that @code{cl-subseq} is the @emph{only} sequence function "
"that allows negative @var{start} and @var{end}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3440
msgid ""
"You can use @code{setf} on a @code{cl-subseq} form to replace a specified "
"range of elements with elements from another sequence. The replacement is "
"done as if by @code{cl-replace}, described below."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3442
#, no-wrap
msgid "cl-concatenate result-type &rest seqs"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3449
msgid ""
"This function concatenates the argument sequences together to form a result "
"sequence of type @var{result-type}, one of the symbols @code{vector}, "
"@code{string}, or @code{list}. The arguments are always copied, even in "
"cases such as @code{(cl-concatenate 'list '(1 2 3))} where the result is "
"identical to an argument."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3451
#, no-wrap
msgid "cl-fill seq item @t{&key :start :end}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3454
msgid ""
"This function fills the elements of the sequence (or the specified part of "
"the sequence) with the value @var{item}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3456
#, no-wrap
msgid "cl-replace seq1 seq2 @t{&key :start1 :end1 :start2 :end2}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3461
msgid ""
"This function copies part of @var{seq2} into part of @var{seq1}. The "
"sequence @var{seq1} is not stretched or resized; the amount of data copied "
"is simply the shorter of the source and destination (sub)sequences. The "
"function returns @var{seq1}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3468
msgid ""
"If @var{seq1} and @var{seq2} are @code{eq}, then the replacement will work "
"correctly even if the regions indicated by the start and end arguments "
"overlap. However, if @var{seq1} and @var{seq2} are lists that share storage "
"but are not @code{eq}, and the start and end arguments specify overlapping "
"regions, the effect is undefined."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3470
#, no-wrap
msgid ""
"cl-remove item seq @t{&key :test :test-not :key :count :start :end "
":from-end}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3485
msgid ""
"This returns a copy of @var{seq} with all elements matching @var{item} "
"removed. The result may share storage with or be @code{eq} to @var{seq} in "
"some circumstances, but the original @var{seq} will not be modified. The "
"@code{:test}, @code{:test-not}, and @code{:key} arguments define the "
"matching test that is used; by default, elements @code{eql} to @var{item} "
"are removed. The @code{:count} argument specifies the maximum number of "
"matching elements that can be removed (only the leftmost @var{count} matches "
"are removed). The @code{:start} and @code{:end} arguments specify a region "
"in @var{seq} in which elements will be removed; elements outside that region "
"are not matched or removed. The @code{:from-end} argument, if true, says "
"that elements should be deleted from the end of the sequence rather than the "
"beginning (this matters only if @var{count} was also specified)."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3487
#, no-wrap
msgid ""
"cl-delete item seq @t{&key :test :test-not :key :count :start :end "
":from-end}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3496
msgid ""
"This deletes all elements of @var{seq} that match @var{item}. It is a "
"destructive operation. Since Emacs Lisp does not support stretchable "
"strings or vectors, this is the same as @code{cl-remove} for those sequence "
"types. On lists, @code{cl-remove} will copy the list if necessary to "
"preserve the original list, whereas @code{cl-delete} will splice out parts "
"of the argument list. Compare @code{append} and @code{nconc}, which are "
"analogous non-destructive and destructive list operations in Emacs Lisp."
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3498
#, no-wrap
msgid "cl-remove-if"
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3499
#, no-wrap
msgid "cl-remove-if-not"
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3500
#, no-wrap
msgid "cl-delete-if"
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3501
#, no-wrap
msgid "cl-delete-if-not"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3504
msgid ""
"The predicate-oriented functions @code{cl-remove-if}, "
"@code{cl-remove-if-not}, @code{cl-delete-if}, and @code{cl-delete-if-not} "
"are defined similarly."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3505
#, no-wrap
msgid "cl-remove-duplicates seq @t{&key :test :test-not :key :start :end :from-end}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3513
msgid ""
"This function returns a copy of @var{seq} with duplicate elements removed. "
"Specifically, if two elements from the sequence match according to the "
"@code{:test}, @code{:test-not}, and @code{:key} arguments, only the "
"rightmost one is retained. If @code{:from-end} is true, the leftmost one is "
"retained instead. If @code{:start} or @code{:end} is specified, only "
"elements within that subsequence are examined or removed."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3515
#, no-wrap
msgid "cl-delete-duplicates seq @t{&key :test :test-not :key :start :end :from-end}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3518
msgid ""
"This function deletes duplicate elements from @var{seq}. It is a "
"destructive version of @code{cl-remove-duplicates}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3520
#, no-wrap
msgid ""
"cl-substitute new old seq @t{&key :test :test-not :key :count :start :end "
":from-end}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3525
msgid ""
"This function returns a copy of @var{seq}, with all elements matching "
"@var{old} replaced with @var{new}. The @code{:count}, @code{:start}, "
"@code{:end}, and @code{:from-end} arguments may be used to limit the number "
"of substitutions made."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3527
#, no-wrap
msgid ""
"cl-nsubstitute new old seq @t{&key :test :test-not :key :count :start :end "
":from-end}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3531
msgid ""
"This is a destructive version of @code{cl-substitute}; it performs the "
"substitution using @code{setcar} or @code{aset} rather than by returning a "
"changed copy of the sequence."
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3533
#, no-wrap
msgid "cl-substitute-if"
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3534
#, no-wrap
msgid "cl-substitute-if-not"
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3535
#, no-wrap
msgid "cl-nsubstitute-if"
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3536
#, no-wrap
msgid "cl-nsubstitute-if-not"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3541
msgid ""
"The functions @code{cl-substitute-if}, @code{cl-substitute-if-not}, "
"@code{cl-nsubstitute-if}, and @code{cl-nsubstitute-if-not} are defined "
"similarly. For these, a @var{predicate} is given in place of the @var{old} "
"argument."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3548
msgid ""
"These functions search for elements or subsequences in a sequence. (See "
"also @code{cl-member} and @code{cl-assoc}; @pxref{Lists}.)"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3549
#, no-wrap
msgid "cl-find item seq @t{&key :test :test-not :key :start :end :from-end}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3556
msgid ""
"This function searches @var{seq} for an element matching @var{item}. If it "
"finds a match, it returns the matching element. Otherwise, it returns "
"@code{nil}. It returns the leftmost match, unless @code{:from-end} is true, "
"in which case it returns the rightmost match. The @code{:start} and "
"@code{:end} arguments may be used to limit the range of elements that are "
"searched."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3558
#, no-wrap
msgid "cl-position item seq @t{&key :test :test-not :key :start :end :from-end}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3564
msgid ""
"This function is like @code{cl-find}, except that it returns the integer "
"position in the sequence of the matching item rather than the item itself. "
"The position is relative to the start of the sequence as a whole, even if "
"@code{:start} is non-zero. The function returns @code{nil} if no matching "
"element was found."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3566
#, no-wrap
msgid "cl-count item seq @t{&key :test :test-not :key :start :end}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3569
msgid ""
"This function returns the number of elements of @var{seq} which match "
"@var{item}. The result is always a nonnegative integer."
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3571
#, no-wrap
msgid "cl-find-if"
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3572
#, no-wrap
msgid "cl-find-if-not"
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3573
#, no-wrap
msgid "cl-position-if"
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3574
#, no-wrap
msgid "cl-position-if-not"
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3575
#, no-wrap
msgid "cl-count-if"
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3576
#, no-wrap
msgid "cl-count-if-not"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3580
msgid ""
"The @code{cl-find-if}, @code{cl-find-if-not}, @code{cl-position-if}, "
"@code{cl-position-if-not}, @code{cl-count-if}, and @code{cl-count-if-not} "
"functions are defined similarly."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3581
#, no-wrap
msgid ""
"cl-mismatch seq1 seq2 @t{&key :test :test-not :key :start1 :end1 :start2 "
":end2 :from-end}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3590
msgid ""
"This function compares the specified parts of @var{seq1} and @var{seq2}. If "
"they are the same length and the corresponding elements match (according to "
"@code{:test}, @code{:test-not}, and @code{:key}), the function returns "
"@code{nil}. If there is a mismatch, the function returns the index "
"(relative to @var{seq1}) of the first mismatching element. This will be "
"the leftmost pair of elements that do not match, or the position at which "
"the shorter of the two otherwise-matching sequences runs out."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3595
msgid ""
"If @code{:from-end} is true, then the elements are compared from right to "
"left starting at @code{(1- @var{end1})} and @code{(1- @var{end2})}. If the "
"sequences differ, then one plus the index of the rightmost difference "
"(relative to @var{seq1}) is returned."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3598
msgid ""
"An interesting example is @code{(cl-mismatch str1 str2 :key 'upcase)}, which "
"compares two strings case-insensitively."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3600
#, no-wrap
msgid ""
"cl-search seq1 seq2 @t{&key :test :test-not :key :from-end :start1 :end1 "
":start2 :end2}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3609
msgid ""
"This function searches @var{seq2} for a subsequence that matches @var{seq1} "
"(or part of it specified by @code{:start1} and @code{:end1}). Only matches "
"that fall entirely within the region defined by @code{:start2} and "
"@code{:end2} will be considered. The return value is the index of the "
"leftmost element of the leftmost match, relative to the start of @var{seq2}, "
"or @code{nil} if no matches were found. If @code{:from-end} is true, the "
"function finds the @emph{rightmost} matching subsequence."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3614
#, no-wrap
msgid "cl-sort seq predicate @t{&key :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3622
msgid ""
"This function sorts @var{seq} into increasing order as determined by using "
"@var{predicate} to compare pairs of elements. @var{predicate} should return "
"true (non-@code{nil}) if and only if its first argument is less than (not "
"equal to) its second argument. For example, @code{<} and "
"@code{string-lessp} are suitable predicate functions for sorting numbers and "
"strings, respectively; @code{>} would sort numbers into decreasing rather "
"than increasing order."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3627
msgid ""
"This function differs from Emacs's built-in @code{sort} in that it can "
"operate on any type of sequence, not just lists. Also, it accepts a "
"@code{:key} argument, which is used to preprocess data fed to the "
"@var{predicate} function. For example,"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3630
#, no-wrap
msgid "(setq data (cl-sort data 'string-lessp :key 'downcase))\n"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3638
msgid ""
"sorts @var{data}, a sequence of strings, into increasing alphabetical order "
"without regard to case. A @code{:key} function of @code{car} would be "
"useful for sorting association lists. It should only be a simple accessor "
"though, since it's used heavily in the current implementation."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3641
msgid ""
"The @code{cl-sort} function is destructive; it sorts lists by actually "
"rearranging the @sc{cdr} pointers in suitable fashion."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3643
#, no-wrap
msgid "cl-stable-sort seq predicate @t{&key :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3647
msgid ""
"This function sorts @var{seq} @dfn{stably}, meaning two elements which are "
"equal in terms of @var{predicate} are guaranteed not to be rearranged out of "
"their original order by the sort."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3652
msgid ""
"In practice, @code{cl-sort} and @code{cl-stable-sort} are equivalent in "
"Emacs Lisp because the underlying @code{sort} function is stable by "
"default. However, this package reserves the right to use non-stable methods "
"for @code{cl-sort} in the future."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3654
#, no-wrap
msgid "cl-merge type seq1 seq2 predicate @t{&key :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3668
msgid ""
"This function merges two sequences @var{seq1} and @var{seq2} by interleaving "
"their elements. The result sequence, of type @var{type} (in the sense of "
"@code{cl-concatenate}), has length equal to the sum of the lengths of the "
"two input sequences. The sequences may be modified destructively. Order of "
"elements within @var{seq1} and @var{seq2} is preserved in the interleaving; "
"elements of the two sequences are compared by @var{predicate} (in the sense "
"of @code{sort}) and the lesser element goes first in the result. When "
"elements are equal, those from @var{seq1} precede those from @var{seq2} in "
"the result. Thus, if @var{seq1} and @var{seq2} are both sorted according to "
"@var{predicate}, then the result will be a merged sequence which is (stably) "
"sorted according to @var{predicate}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3675
msgid "The functions described here operate on lists."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3681 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:3683
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3684
#, no-wrap
msgid "List Functions"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3681
msgid "@code{cl-caddr}, @code{cl-first}, @code{cl-list*}, etc."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3681 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:3756
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3757
#, no-wrap
msgid "Substitution of Expressions"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3681
msgid "@code{cl-subst}, @code{cl-sublis}, etc."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3681 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:3805
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3806
#, no-wrap
msgid "Lists as Sets"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3681
msgid "@code{cl-member}, @code{cl-adjoin}, @code{cl-union}, etc."
msgstr ""
#. type: section
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3681 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:3905
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3906
#, no-wrap
msgid "Association Lists"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3681
msgid "@code{cl-assoc}, @code{cl-acons}, @code{cl-pairlis}, etc."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3689
msgid ""
"This section describes a number of simple operations on lists, i.e., chains "
"of cons cells."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3690
#, no-wrap
msgid "cl-caddr x"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3696
msgid ""
"This function is equivalent to @code{(car (cdr (cdr @var{x})))}. Likewise, "
"this package aliases all 24 @code{c@var{xxx}r} functions where @var{xxx} is "
"up to four @samp{a}s and/or @samp{d}s. All of these functions are "
"@code{setf}-able, and calls to them are expanded inline by the byte-compiler "
"for maximum efficiency."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3698
#, no-wrap
msgid "cl-first x"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3702
msgid ""
"This function is a synonym for @code{(car @var{x})}. Likewise, the "
"functions @code{cl-second}, @code{cl-third}, @dots{}, through "
"@code{cl-tenth} return the given element of the list @var{x}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3704
#, no-wrap
msgid "cl-rest x"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3706
msgid "This function is a synonym for @code{(cdr @var{x})}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3708
#, no-wrap
msgid "cl-endp x"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3711
msgid ""
"This function acts like @code{null}, but signals an error if @code{x} is "
"neither a @code{nil} nor a cons cell."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3713
#, no-wrap
msgid "cl-list-length x"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3720
msgid ""
"This function returns the length of list @var{x}, exactly like @code{(length "
"@var{x})}, except that if @var{x} is a circular list (where the "
"@sc{cdr}-chain forms a loop rather than terminating with @code{nil}), this "
"function returns @code{nil}. (The regular @code{length} function would get "
"stuck if given a circular list. See also the @code{safe-length} function.)"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3722
#, no-wrap
msgid "cl-list* arg &rest others"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3729
msgid ""
"This function constructs a list of its arguments. The final argument "
"becomes the @sc{cdr} of the last cell constructed. Thus, @code{(cl-list* "
"@var{a} @var{b} @var{c})} is equivalent to @code{(cons @var{a} (cons @var{b} "
"@var{c}))}, and @code{(cl-list* @var{a} @var{b} nil)} is equivalent to "
"@code{(list @var{a} @var{b})}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3731
#, no-wrap
msgid "cl-ldiff list sublist"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3740
msgid ""
"If @var{sublist} is a sublist of @var{list}, i.e., is @code{eq} to one of "
"the cons cells of @var{list}, then this function returns a copy of the part "
"of @var{list} up to but not including @var{sublist}. For example, "
"@code{(cl-ldiff x (cddr x))} returns the first two elements of the list "
"@code{x}. The result is a copy; the original @var{list} is not modified. "
"If @var{sublist} is not a sublist of @var{list}, a copy of the entire "
"@var{list} is returned."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3742
#, no-wrap
msgid "cl-copy-list list"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3745
msgid ""
"This function returns a copy of the list @var{list}. It copies dotted lists "
"like @code{(1 2 . 3)} correctly."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3747
#, no-wrap
msgid "cl-tree-equal x y @t{&key :test :test-not :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3754
msgid ""
"This function compares two trees of cons cells. If @var{x} and @var{y} are "
"both cons cells, their @sc{car}s and @sc{cdr}s are compared recursively. If "
"neither @var{x} nor @var{y} is a cons cell, they are compared by @code{eql}, "
"or according to the specified test. The @code{:key} function, if specified, "
"is applied to the elements of both trees. @xref{Sequences}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3763
msgid ""
"These functions substitute elements throughout a tree of cons cells. "
"(@xref{Sequence Functions}, for the @code{cl-substitute} function, which "
"works on just the top-level elements of a list.)"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3764
#, no-wrap
msgid "cl-subst new old tree @t{&key :test :test-not :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3777
msgid ""
"This function substitutes occurrences of @var{old} with @var{new} in "
"@var{tree}, a tree of cons cells. It returns a substituted tree, which will "
"be a copy except that it may share storage with the argument @var{tree} in "
"parts where no substitutions occurred. The original @var{tree} is not "
"modified. This function recurses on, and compares against @var{old}, both "
"@sc{car}s and @sc{cdr}s of the component cons cells. If @var{old} is itself "
"a cons cell, then matching cells in the tree are substituted as usual "
"without recursively substituting in that cell. Comparisons with @var{old} "
"are done according to the specified test (@code{eql} by default). The "
"@code{:key} function is applied to the elements of the tree but not to "
"@var{old}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3779
#, no-wrap
msgid "cl-nsubst new old tree @t{&key :test :test-not :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3783
msgid ""
"This function is like @code{cl-subst}, except that it works by destructive "
"modification (by @code{setcar} or @code{setcdr}) rather than copying."
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3785
#, no-wrap
msgid "cl-subst-if"
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3786
#, no-wrap
msgid "cl-subst-if-not"
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3787
#, no-wrap
msgid "cl-nsubst-if"
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3788
#, no-wrap
msgid "cl-nsubst-if-not"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3791
msgid ""
"The @code{cl-subst-if}, @code{cl-subst-if-not}, @code{cl-nsubst-if}, and "
"@code{cl-nsubst-if-not} functions are defined similarly."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3792
#, no-wrap
msgid "cl-sublis alist tree @t{&key :test :test-not :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3799
msgid ""
"This function is like @code{cl-subst}, except that it takes an association "
"list @var{alist} of @var{old}-@var{new} pairs. Each element of the tree "
"(after applying the @code{:key} function, if any), is compared with the "
"@sc{car}s of @var{alist}; if it matches, it is replaced by the corresponding "
"@sc{cdr}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3801
#, no-wrap
msgid "cl-nsublis alist tree @t{&key :test :test-not :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3803
msgid "This is a destructive version of @code{cl-sublis}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3813
msgid ""
"These functions perform operations on lists that represent sets of "
"elements. All these functions (unless otherwise specified) default to using "
"@code{eql} as the test function, but that can be modified by the "
"@code{:test} parameter."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3814
#, no-wrap
msgid "cl-member item list @t{&key :test :test-not :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3821
msgid ""
"This function searches @var{list} for an element matching @var{item}. If a "
"match is found, it returns the cons cell whose @sc{car} was the matching "
"element. Otherwise, it returns @code{nil}. Elements are compared by "
"@code{eql} by default; you can use the @code{:test}, @code{:test-not}, and "
"@code{:key} arguments to modify this behavior. @xref{Sequences}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3825
msgid ""
"The standard Emacs lisp function @code{member} uses @code{equal} for "
"comparisons; it is equivalent to @code{(cl-member @var{item} @var{list} "
":test 'equal)}."
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3827
#, no-wrap
msgid "cl-member-if"
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3828
#, no-wrap
msgid "cl-member-if-not"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3831
msgid ""
"The @code{cl-member-if} and @code{cl-member-if-not} functions analogously "
"search for elements that satisfy a given predicate."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3832
#, no-wrap
msgid "cl-tailp sublist list"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3836
msgid ""
"This function returns @code{t} if @var{sublist} is a sublist of @var{list}, "
"i.e., if @var{sublist} is @code{eql} to @var{list} or to any of its "
"@sc{cdr}s."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3838
#, no-wrap
msgid "cl-adjoin item list @t{&key :test :test-not :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3846
msgid ""
"This function conses @var{item} onto the front of @var{list}, like "
"@code{(cons @var{item} @var{list})}, but only if @var{item} is not already "
"present on the list (as determined by @code{cl-member}). If a @code{:key} "
"argument is specified, it is applied to @var{item} as well as to the "
"elements of @var{list} during the search, on the reasoning that @var{item} "
"is ``about'' to become part of the list."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3848
#, no-wrap
msgid "cl-union list1 list2 @t{&key :test :test-not :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3858
msgid ""
"This function combines two lists that represent sets of items, returning a "
"list that represents the union of those two sets. The resulting list "
"contains all items that appear in @var{list1} or @var{list2}, and no "
"others. If an item appears in both @var{list1} and @var{list2} it is copied "
"only once. If an item is duplicated in @var{list1} or @var{list2}, it is "
"undefined whether or not that duplication will survive in the result list. "
"The order of elements in the result list is also undefined."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3860
#, no-wrap
msgid "cl-nunion list1 list2 @t{&key :test :test-not :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3863
msgid ""
"This is a destructive version of @code{cl-union}; rather than copying, it "
"tries to reuse the storage of the argument lists if possible."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3865
#, no-wrap
msgid "cl-intersection list1 list2 @t{&key :test :test-not :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3869
msgid ""
"This function computes the intersection of the sets represented by "
"@var{list1} and @var{list2}. It returns the list of items that appear in "
"both @var{list1} and @var{list2}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3871
#, no-wrap
msgid "cl-nintersection list1 list2 @t{&key :test :test-not :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3875
msgid ""
"This is a destructive version of @code{cl-intersection}. It tries to reuse "
"storage of @var{list1} rather than copying. It does @emph{not} reuse the "
"storage of @var{list2}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3877
#, no-wrap
msgid "cl-set-difference list1 list2 @t{&key :test :test-not :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3881
msgid ""
"This function computes the ``set difference'' of @var{list1} and "
"@var{list2}, i.e., the set of elements that appear in @var{list1} but "
"@emph{not} in @var{list2}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3883
#, no-wrap
msgid "cl-nset-difference list1 list2 @t{&key :test :test-not :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3886
msgid ""
"This is a destructive @code{cl-set-difference}, which will try to reuse "
"@var{list1} if possible."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3888
#, no-wrap
msgid "cl-set-exclusive-or list1 list2 @t{&key :test :test-not :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3892
msgid ""
"This function computes the ``set exclusive or'' of @var{list1} and "
"@var{list2}, i.e., the set of elements that appear in exactly one of "
"@var{list1} and @var{list2}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3894
#, no-wrap
msgid "cl-nset-exclusive-or list1 list2 @t{&key :test :test-not :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3897
msgid ""
"This is a destructive @code{cl-set-exclusive-or}, which will try to reuse "
"@var{list1} and @var{list2} if possible."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3899
#, no-wrap
msgid "cl-subsetp list1 list2 @t{&key :test :test-not :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3903
msgid ""
"This function checks whether @var{list1} represents a subset of @var{list2}, "
"i.e., whether every element of @var{list1} also appears in @var{list2}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3912
msgid ""
"An @dfn{association list} is a list representing a mapping from one set of "
"values to another; any list whose elements are cons cells is an association "
"list."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3913
#, no-wrap
msgid "cl-assoc item a-list @t{&key :test :test-not :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3923
msgid ""
"This function searches the association list @var{a-list} for an element "
"whose @sc{car} matches (in the sense of @code{:test}, @code{:test-not}, and "
"@code{:key}, or by comparison with @code{eql}) a given @var{item}. It "
"returns the matching element, if any, otherwise @code{nil}. It ignores "
"elements of @var{a-list} that are not cons cells. (This corresponds to the "
"behavior of @code{assq} and @code{assoc} in Emacs Lisp; Common Lisp's "
"@code{assoc} ignores @code{nil}s but considers any other non-cons elements "
"of @var{a-list} to be an error.)"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3925
#, no-wrap
msgid "cl-rassoc item a-list @t{&key :test :test-not :key}"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3929
msgid ""
"This function searches for an element whose @sc{cdr} matches @var{item}. If "
"@var{a-list} represents a mapping, this applies the inverse of the mapping "
"to @var{item}."
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3931
#, no-wrap
msgid "cl-assoc-if"
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3932
#, no-wrap
msgid "cl-assoc-if-not"
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3933
#, no-wrap
msgid "cl-rassoc-if"
msgstr ""
#. type: findex
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3934
#, no-wrap
msgid "cl-rassoc-if-not"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3937
msgid ""
"The @code{cl-assoc-if}, @code{cl-assoc-if-not}, @code{cl-rassoc-if}, and "
"@code{cl-rassoc-if-not} functions are defined similarly."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3939
msgid "Two simple functions for constructing association lists are:"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3940
#, no-wrap
msgid "cl-acons key value alist"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3942
msgid ""
"This is equivalent to @code{(cons (cons @var{key} @var{value}) "
"@var{alist})}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3944
#, no-wrap
msgid "cl-pairlis keys values &optional alist"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3947
msgid ""
"This is equivalent to @code{(nconc (cl-mapcar 'cons @var{keys} @var{values}) "
"@var{alist})}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3960
msgid ""
"The Common Lisp @dfn{structure} mechanism provides a general way to define "
"data types similar to C's @code{struct} types. A structure is a Lisp object "
"containing some number of @dfn{slots}, each of which can hold any Lisp data "
"object. Functions are provided for accessing and setting the slots, "
"creating or copying structure objects, and recognizing objects of a "
"particular structure type."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3966
msgid ""
"In true Common Lisp, each structure type is a new type distinct from all "
"existing Lisp types. Since the underlying Emacs Lisp system provides no way "
"to create new distinct types, this package implements structures as vectors "
"(or lists upon request) with a special ``tag'' symbol to identify them."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3967
#, no-wrap
msgid "cl-defstruct name slots@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3973
msgid ""
"The @code{cl-defstruct} form defines a new structure type called @var{name}, "
"with the specified @var{slots}. (The @var{slots} may begin with a string "
"which documents the structure type.) In the simplest case, @var{name} and "
"each of the @var{slots} are symbols. For example,"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3976
#, no-wrap
msgid "(cl-defstruct person first-name age sex)\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3984
msgid ""
"defines a struct type called @code{person} that contains three slots. Given "
"a @code{person} object @var{p}, you can access those slots by calling "
"@code{(person-first-name @var{p})}, @code{(person-age @var{p})}, and "
"@code{(person-sex @var{p})}. You can also change these slots by using "
"@code{setf} on any of these place forms, for example:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3987
#, no-wrap
msgid "(cl-incf (person-age birthday-boy))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3995
msgid ""
"You can create a new @code{person} by calling @code{make-person}, which "
"takes keyword arguments @code{:first-name}, @code{:age}, and @code{:sex} to "
"specify the initial values of these slots in the new object. (Omitting any "
"of these arguments leaves the corresponding slot ``undefined'', according to "
"the Common Lisp standard; in Emacs Lisp, such uninitialized slots are filled "
"with @code{nil}.)"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:3998
msgid ""
"Given a @code{person}, @code{(copy-person @var{p})} makes a new object of "
"the same type whose slots are @code{eq} to those of @var{p}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4001
msgid ""
"Given any Lisp object @var{x}, @code{(person-p @var{x})} returns true if "
"@var{x} is a @code{person}, and false otherwise."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4013
msgid ""
"Accessors like @code{person-first-name} normally check their arguments "
"(effectively using @code{person-p}) and signal an error if the argument is "
"the wrong type. This check is affected by @code{(optimize (safety "
"@dots{}))} declarations. Safety level 1, the default, uses a somewhat "
"optimized check that will detect all incorrect arguments, but may use an "
"uninformative error message (e.g., ``expected a vector'' instead of "
"``expected a @code{person}''). Safety level 0 omits all checks except as "
"provided by the underlying @code{aref} call; safety levels 2 and 3 do "
"rigorous checking that will always print a descriptive error message for "
"incorrect inputs. @xref{Declarations}."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4031
#, no-wrap
msgid ""
"(setq dave (make-person :first-name \"Dave\" :sex 'male))\n"
" @result{} [cl-struct-person \"Dave\" nil male]\n"
"(setq other (copy-person dave))\n"
" @result{} [cl-struct-person \"Dave\" nil male]\n"
"(eq dave other)\n"
" @result{} nil\n"
"(eq (person-first-name dave) (person-first-name other))\n"
" @result{} t\n"
"(person-p dave)\n"
" @result{} t\n"
"(person-p [1 2 3 4])\n"
" @result{} nil\n"
"(person-p \"Bogus\")\n"
" @result{} nil\n"
"(person-p '[cl-struct-person counterfeit person object])\n"
" @result{} t\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4039
msgid ""
"In general, @var{name} is either a name symbol or a list of a name symbol "
"followed by any number of @dfn{structure options}; each @var{slot} is either "
"a slot symbol or a list of the form @samp{(@var{slot-name} "
"@var{default-value} @var{slot-options}@dots{})}. The @var{default-value} is "
"a Lisp form that is evaluated any time an instance of the structure type is "
"created without specifying that slot's value."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4045
#, no-wrap
msgid ""
"(cl-defstruct person\n"
" (first-name nil :read-only t)\n"
" age\n"
" (sex 'unknown))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4049
msgid ""
"@var{slot-options} is a list of keyword-value pairs, where the following "
"keywords can be used:"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4051
#, no-wrap
msgid ":read-only"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4055
msgid ""
"A non-nil value means the slot should not be @code{setf}-able; the slot's "
"value is determined when the object is created and does not change "
"afterward."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4056 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:4219
#, no-wrap
msgid ":type"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4058
msgid "The expected type of the values held in this slot."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4059
#, no-wrap
msgid ":documentation"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4061
msgid "A documentation string describing the slot."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4064
msgid "Other slot options are currently ignored."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4070
msgid ""
"For obscure historical reasons, structure options take a different form than "
"slot options. A structure option is either a keyword symbol, or a list "
"beginning with a keyword symbol possibly followed by arguments. (By "
"contrast, slot options are key-value pairs not enclosed in lists.)"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4076
#, no-wrap
msgid ""
"(cl-defstruct (person (:constructor create-person)\n"
" (:type list)\n"
" :named)\n"
" first-name age sex)\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4079
msgid "The following structure options are recognized."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4081
#, no-wrap
msgid ":conc-name"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4088
msgid ""
"The argument is a symbol whose print name is used as the prefix for the "
"names of slot accessor functions. The default is the name of the struct "
"type followed by a hyphen. The option @code{(:conc-name p-)} would change "
"this prefix to @code{p-}. Specifying @code{nil} as an argument means no "
"prefix, so that the slot names themselves are used to name the accessor "
"functions."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4089
#, no-wrap
msgid ":constructor"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4096
msgid ""
"In the simple case, this option takes one argument which is an alternate "
"name to use for the constructor function. The default is "
"@code{make-@var{name}}, e.g., @code{make-person}. The above example changes "
"this to @code{create-person}. Specifying @code{nil} as an argument means "
"that no standard constructor should be generated at all."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4110
msgid ""
"In the full form of this option, the constructor name is followed by an "
"arbitrary argument list. @xref{Program Structure}, for a description of the "
"format of Common Lisp argument lists. All options, such as @code{&rest} and "
"@code{&key}, are supported. The argument names should match the slot names; "
"each slot is initialized from the corresponding argument. Slots whose names "
"do not appear in the argument list are initialized based on the "
"@var{default-value} in their slot descriptor. Also, @code{&optional} and "
"@code{&key} arguments that don't specify defaults take their defaults from "
"the slot descriptor. It is valid to include arguments that don't correspond "
"to slot names; these are useful if they are referred to in the defaults for "
"optional, keyword, or @code{&aux} arguments that @emph{do} correspond to "
"slots."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4115
msgid ""
"You can specify any number of full-format @code{:constructor} options on a "
"structure. The default constructor is still generated as well unless you "
"disable it with a simple-format @code{:constructor} option."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4127
#, no-wrap
msgid ""
"(cl-defstruct\n"
" (person\n"
" (:constructor nil) ; no default constructor\n"
" (:constructor new-person\n"
" (first-name sex &optional (age 0)))\n"
" (:constructor new-hound (&key (first-name \"Rover\")\n"
" (dog-years 0)\n"
" &aux (age (* 7 dog-years))\n"
" (sex 'canine))))\n"
" first-name age sex)\n"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4135
msgid ""
"The first constructor here takes its arguments positionally rather than by "
"keyword. (In official Common Lisp terminology, constructors that work By "
"Order of Arguments instead of by keyword are called ``BOA constructors''. "
"No, I'm not making this up.) For example, @code{(new-person \"Jane\" "
"'female)} generates a person whose slots are @code{\"Jane\"}, 0, and "
"@code{female}, respectively."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4142
msgid ""
"The second constructor takes two keyword arguments, @code{:name}, which "
"initializes the @code{name} slot and defaults to @code{\"Rover\"}, and "
"@code{:dog-years}, which does not itself correspond to a slot but which is "
"used to initialize the @code{age} slot. The @code{sex} slot is forced to "
"the symbol @code{canine} with no syntax for overriding it."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4143
#, no-wrap
msgid ":copier"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4148
msgid ""
"The argument is an alternate name for the copier function for this type. "
"The default is @code{copy-@var{name}}. @code{nil} means not to generate a "
"copier function. (In this implementation, all copier functions are simply "
"synonyms for @code{copy-sequence}.)"
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4149
#, no-wrap
msgid ":predicate"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4155
msgid ""
"The argument is an alternate name for the predicate that recognizes objects "
"of this type. The default is @code{@var{name}-p}. @code{nil} means not to "
"generate a predicate function. (If the @code{:type} option is used without "
"the @code{:named} option, no predicate is ever generated.)"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4161
msgid ""
"In true Common Lisp, @code{typep} is always able to recognize a structure "
"object even if @code{:predicate} was used. In this package, @code{cl-typep} "
"simply looks for a function called @code{@var{typename}-p}, so it will work "
"for structure types only if they used the default predicate name."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4162
#, no-wrap
msgid ":include"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4171
msgid ""
"This option implements a very limited form of C@t{++}-style inheritance. "
"The argument is the name of another structure type previously created with "
"@code{cl-defstruct}. The effect is to cause the new structure type to "
"inherit all of the included structure's slots (plus, of course, any new "
"slots described by this struct's slot descriptors). The new structure is "
"considered a ``specialization'' of the included one. In fact, the predicate "
"and slot accessors for the included type will also accept objects of the new "
"type."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4176
msgid ""
"If there are extra arguments to the @code{:include} option after the "
"included-structure name, these options are treated as replacement slot "
"descriptors for slots in the included structure, possibly with modified "
"default values. Borrowing an example from Steele:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4184
#, no-wrap
msgid ""
"(cl-defstruct person first-name (age 0) sex)\n"
" @result{} person\n"
"(cl-defstruct (astronaut (:include person (age 45)))\n"
" helmet-size\n"
" (favorite-beverage 'tang))\n"
" @result{} astronaut\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4189
#, no-wrap
msgid ""
"(setq joe (make-person :first-name \"Joe\"))\n"
" @result{} [cl-struct-person \"Joe\" 0 nil]\n"
"(setq buzz (make-astronaut :first-name \"Buzz\"))\n"
" @result{} [cl-struct-astronaut \"Buzz\" 45 nil nil tang]\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4194
#, no-wrap
msgid ""
"(list (person-p joe) (person-p buzz))\n"
" @result{} (t t)\n"
"(list (astronaut-p joe) (astronaut-p buzz))\n"
" @result{} (nil t)\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4199
#, no-wrap
msgid ""
"(person-first-name buzz)\n"
" @result{} \"Buzz\"\n"
"(astronaut-first-name joe)\n"
" @result{} error: \"astronaut-first-name accessing a non-astronaut\"\n"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4207
msgid ""
"Thus, if @code{astronaut} is a specialization of @code{person}, then every "
"@code{astronaut} is also a @code{person} (but not the other way around). "
"Every @code{astronaut} includes all the slots of a @code{person}, plus extra "
"slots that are specific to astronauts. Operations that work on people (like "
"@code{person-first-name}) work on astronauts just like other people."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4208
#, no-wrap
msgid ":noinline"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4211
msgid ""
"If this option is present, this structure's functions will not be inlined, "
"even functions that normally would."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4212
#, no-wrap
msgid ":print-function"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4218
msgid ""
"In full Common Lisp, this option allows you to specify a function that is "
"called to print an instance of the structure type. The Emacs Lisp system "
"offers no hooks into the Lisp printer which would allow for such a feature, "
"so this package simply ignores @code{:print-function}."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4225
msgid ""
"The argument should be one of the symbols @code{vector} or @code{list}. "
"This tells which underlying Lisp data type should be used to implement the "
"new structure type. Records are used by default, but @code{(:type vector)} "
"will cause structure objects to be stored as vectors and @code{(:type list)} "
"lists instead."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4230
msgid ""
"The record and vector representations for structure objects have the "
"advantage that all structure slots can be accessed quickly, although "
"creating them are a bit slower in Emacs Lisp. Lists are easier to create, "
"but take a relatively long time accessing the later slots."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4231
#, no-wrap
msgid ":named"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4237
msgid ""
"This option, which takes no arguments, causes a characteristic ``tag'' "
"symbol to be stored at the front of the structure object. Using "
"@code{:type} without also using @code{:named} will result in a structure "
"type stored as plain vectors or lists with no identifying features."
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4241
msgid ""
"The default, if you don't specify @code{:type} explicitly, is to use "
"records, which are always tagged. Therefore, @code{:named} is only useful "
"in conjunction with @code{:type}."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4247
#, no-wrap
msgid ""
"(cl-defstruct (person1) first-name age sex)\n"
"(cl-defstruct (person2 (:type list) :named) first-name age sex)\n"
"(cl-defstruct (person3 (:type list)) first-name age sex)\n"
"(cl-defstruct (person4 (:type vector)) first-name age sex)\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4256
#, no-wrap
msgid ""
"(setq p1 (make-person1))\n"
" @result{} #s(person1 nil nil nil)\n"
"(setq p2 (make-person2))\n"
" @result{} (person2 nil nil nil)\n"
"(setq p3 (make-person3))\n"
" @result{} (nil nil nil)\n"
"(setq p4 (make-person4))\n"
" @result{} [nil nil nil]\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4263
#, no-wrap
msgid ""
"(person1-p p1)\n"
" @result{} t\n"
"(person2-p p2)\n"
" @result{} t\n"
"(person3-p p3)\n"
" @result{} error: function person3-p undefined\n"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4273
msgid ""
"Since unnamed structures don't have tags, @code{cl-defstruct} is not able to "
"make a useful predicate for recognizing them. Also, accessors like "
"@code{person3-first-name} will be generated but they will not be able to do "
"any type checking. The @code{person3-first-name} function, for example, "
"will simply be a synonym for @code{car} in this case. By contrast, "
"@code{person2-first-name} is able to verify that its argument is indeed a "
"@code{person2} object before proceeding."
msgstr ""
#. type: item
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4274
#, no-wrap
msgid ":initial-offset"
msgstr ""
#. type: table
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4284
msgid ""
"The argument must be a nonnegative integer. It specifies a number of slots "
"to be left ``empty'' at the front of the structure. If the structure is "
"named, the tag appears at the specified position in the list or vector; "
"otherwise, the first slot appears at that position. Earlier positions are "
"filled with @code{nil} by the constructors and ignored otherwise. If the "
"type @code{:include}s another type, then @code{:initial-offset} specifies a "
"number of slots to be skipped between the last slot of the included type and "
"the first new slot."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4289
msgid ""
"Except as noted, the @code{cl-defstruct} facility of this package is "
"entirely compatible with that of Common Lisp."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4292
msgid ""
"The @code{cl-defstruct} package also provides a few structure introspection "
"functions."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4293
#, no-wrap
msgid "cl-struct-sequence-type struct-type"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4298
msgid ""
"This function returns the underlying data structure for @code{struct-type}, "
"which is a symbol. It returns @code{record}, @code{vector} or @code{list}, "
"or @code{nil} if @code{struct-type} is not actually a structure."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4300
#, no-wrap
msgid "cl-struct-slot-info struct-type"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4307
msgid ""
"This function returns a list of slot descriptors for structure "
"@code{struct-type}. Each entry in the list is @code{(name . opts)}, where "
"@code{name} is the name of the slot and @code{opts} is the list of slot "
"options given to @code{defstruct}. Dummy entries represent the slots used "
"for the struct name and that are skipped to implement "
"@code{:initial-offset}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4309
#, no-wrap
msgid "cl-struct-slot-offset struct-type slot-name"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4315
msgid ""
"Return the offset of slot @code{slot-name} in @code{struct-type}. The "
"returned zero-based slot index is relative to the start of the structure "
"data type and is adjusted for any structure name and :initial-offset slots. "
"Signal error if struct @code{struct-type} does not contain @code{slot-name}."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4317
#, no-wrap
msgid "cl-struct-slot-value struct-type slot-name inst"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4322
msgid ""
"Return the value of slot @code{slot-name} in @code{inst} of "
"@code{struct-type}. @code{struct} and @code{slot-name} are symbols. "
"@code{inst} is a structure instance. This routine is also a @code{setf} "
"place. Can signal the same errors as @code{cl-struct-slot-offset}."
msgstr ""
#. type: chapter
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4325
#, no-wrap
msgid "Assertions and Errors"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4332
msgid ""
"This section describes two macros that test @dfn{assertions}, i.e., "
"conditions which must be true if the program is operating correctly. "
"Assertions never add to the behavior of a Lisp program; they simply make "
"``sanity checks'' to make sure everything is as it should be."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4337
msgid ""
"If the optimization property @code{speed} has been set to 3, and "
"@code{safety} is less than 3, then the byte-compiler will optimize away the "
"following assertions. Because assertions might be optimized away, it is a "
"bad idea for them to include side-effects."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4338
#, no-wrap
msgid "cl-assert test-form [show-args string args@dots{}]"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4342
msgid ""
"This form verifies that @var{test-form} is true (i.e., evaluates to a "
"non-@code{nil} value). If so, it returns @code{nil}. If the test is not "
"satisfied, @code{cl-assert} signals an error."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4347
msgid ""
"A default error message will be supplied which includes @var{test-form}. "
"You can specify a different error message by including a @var{string} "
"argument plus optional extra arguments. Those arguments are simply passed "
"to @code{error} to signal the error."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4352
msgid ""
"If the optional second argument @var{show-args} is @code{t} instead of "
"@code{nil}, then the error message (with or without @var{string}) will also "
"include all non-constant arguments of the top-level @var{form}. For "
"example:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4355
#, no-wrap
msgid "(cl-assert (> x 10) t \"x is too small: %d\")\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4362
msgid ""
"This usage of @var{show-args} is an extension to Common Lisp. In true "
"Common Lisp, the second argument gives a list of @var{places} which can be "
"@code{setf}'d by the user before continuing from the error. Since Emacs "
"Lisp does not support continuable errors, it makes no sense to specify "
"@var{places}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4364
#, no-wrap
msgid "cl-check-type form type [string]"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4371
msgid ""
"This form verifies that @var{form} evaluates to a value of type @var{type}. "
"If so, it returns @code{nil}. If not, @code{cl-check-type} signals a "
"@code{wrong-type-argument} error. The default error message lists the "
"erroneous value along with @var{type} and @var{form} themselves. If "
"@var{string} is specified, it is included in the error message in place of "
"@var{type}. For example:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4374
#, no-wrap
msgid "(cl-check-type x (integer 1 *) \"a positive integer\")\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4378
msgid ""
"@xref{Type Predicates}, for a description of the type specifiers that may be "
"used for @var{type}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4383
msgid ""
"Note that in Common Lisp, the first argument to @code{check-type} must be a "
"@var{place} suitable for use by @code{setf}, because @code{check-type} "
"signals a continuable error that allows the user to modify @var{place}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4396
msgid ""
"Many of the advanced features of this package, such as @code{cl-defun}, "
"@code{cl-loop}, etc., are implemented as Lisp macros. In byte-compiled "
"code, these complex notations will be expanded into equivalent Lisp code "
"which is simple and efficient. For example, the form"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4399
#, no-wrap
msgid "(cl-incf i n)\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4403
msgid "is expanded at compile-time to the Lisp form"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4406
#, no-wrap
msgid "(setq i (+ i n))\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4412
msgid ""
"which is the most efficient way of doing this operation in Lisp. Thus, "
"there is no performance penalty for using the more readable @code{cl-incf} "
"form in your compiled code."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4420
msgid ""
"@emph{Interpreted} code, on the other hand, must expand these macros every "
"time they are executed. For this reason it is strongly recommended that "
"code making heavy use of macros be compiled. A loop using @code{cl-incf} a "
"hundred times will execute considerably faster if compiled, and will also "
"garbage-collect less because the macro expansion will not have to be "
"generated, used, and thrown away a hundred times."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4423
msgid ""
"You can find out how a macro expands by using the @code{cl-prettyexpand} "
"function."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4424
#, no-wrap
msgid "cl-prettyexpand form &optional full"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4430
msgid ""
"This function takes a single Lisp form as an argument and inserts a nicely "
"formatted copy of it in the current buffer (which must be in Lisp mode so "
"that indentation works properly). It also expands all Lisp macros that "
"appear in the form. The easiest way to use this function is to go to the "
"@file{*scratch*} buffer and type, say,"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4433
#, no-wrap
msgid "(cl-prettyexpand '(cl-loop for x below 10 collect x))\n"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4438
msgid ""
"and type @kbd{C-x C-e} immediately after the closing parenthesis; an "
"expansion similar to:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4447
#, no-wrap
msgid ""
"(cl-block nil\n"
" (let* ((x 0)\n"
" (G1004 nil))\n"
" (while (< x 10)\n"
" (setq G1004 (cons x G1004))\n"
" (setq x (+ x 1)))\n"
" (nreverse G1004)))\n"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4454
msgid ""
"will be inserted into the buffer. (The @code{cl-block} macro is expanded "
"differently in the interpreter and compiler, so @code{cl-prettyexpand} just "
"leaves it alone. The temporary variable @code{G1004} was created by "
"@code{cl-gensym}.)"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4459
msgid ""
"If the optional argument @var{full} is true, then @emph{all} macros are "
"expanded, including @code{cl-block}, @code{cl-eval-when}, and compiler "
"macros. Expansion is done as if @var{form} were a top-level form in a file "
"being compiled."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4471
#, no-wrap
msgid ""
"(cl-prettyexpand '(cl-pushnew 'x list))\n"
" @print{} (setq list (cl-adjoin 'x list))\n"
"(cl-prettyexpand '(cl-pushnew 'x list) t)\n"
" @print{} (setq list (if (memq 'x list) list (cons 'x list)))\n"
"(cl-prettyexpand '(caddr (cl-member 'a list)) t)\n"
" @print{} (car (cdr (cdr (memq 'a list))))\n"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4476
msgid ""
"Note that @code{cl-adjoin}, @code{cl-caddr}, and @code{cl-member} all have "
"built-in compiler macros to optimize them in common cases."
msgstr ""
#. type: appendixsec
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4478
#, no-wrap
msgid "Error Checking"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4485
msgid ""
"Common Lisp compliance has in general not been sacrificed for the sake of "
"efficiency. A few exceptions have been made for cases where substantial "
"gains were possible at the expense of marginal incompatibility."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4497
msgid ""
"The Common Lisp standard (as embodied in Steele's book) uses the phrase ``it "
"is an error if'' to indicate a situation that is not supposed to arise in "
"complying programs; implementations are strongly encouraged but not required "
"to signal an error in these situations. This package sometimes omits such "
"error checking in the interest of compactness and efficiency. For example, "
"@code{cl-do} variable specifiers are supposed to be lists of one, two, or "
"three forms; extra forms are ignored by this package rather than signaling a "
"syntax error. Functions taking keyword arguments will accept an odd number "
"of arguments, treating the trailing keyword as if it were followed by the "
"value @code{nil}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4507
msgid ""
"Argument lists (as processed by @code{cl-defun} and friends) @emph{are} "
"checked rigorously except for the minor point just mentioned; in particular, "
"keyword arguments are checked for validity, and @code{&allow-other-keys} and "
"@code{:allow-other-keys} are fully implemented. Keyword validity checking "
"is slightly time consuming (though not too bad in byte-compiled code); you "
"can use @code{&allow-other-keys} to omit this check. Functions defined in "
"this package such as @code{cl-find} and @code{cl-member} do check their "
"keyword arguments for validity."
msgstr ""
#. type: appendixsec
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4508
#, no-wrap
msgid "Compiler Optimizations"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4519
msgid ""
"Changing the value of @code{byte-optimize} from the default @code{t} is "
"highly discouraged; many of the Common Lisp macros emit code that can be "
"improved by optimization. In particular, @code{cl-block}s (whether explicit "
"or implicit in constructs like @code{cl-defun} and @code{cl-loop}) carry a "
"fair run-time penalty; the byte-compiler removes @code{cl-block}s that are "
"not actually referenced by @code{cl-return} or @code{cl-return-from} inside "
"the block."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4527
msgid ""
"The following is a list of some of the most important incompatibilities "
"between this package and Common Lisp as documented in Steele (2nd edition)."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4534
msgid ""
"The word @code{cl-defun} is required instead of @code{defun} in order to use "
"extended Common Lisp argument lists in a function. Likewise, "
"@code{cl-defmacro} and @code{cl-function} are versions of those forms which "
"understand full-featured argument lists. The @code{&whole} keyword does not "
"work in @code{cl-defmacro} argument lists (except inside recursive argument "
"lists)."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4538
msgid ""
"The @code{equal} predicate does not distinguish between IEEE floating-point "
"plus and minus zero. The @code{cl-equalp} predicate has several differences "
"with Common Lisp; @pxref{Predicates}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4544
msgid ""
"The @code{cl-do-all-symbols} form is the same as @code{cl-do-symbols} with "
"no @var{obarray} argument. In Common Lisp, this form would iterate over all "
"symbols in all packages. Since Emacs obarrays are not a first-class package "
"mechanism, there is no way for @code{cl-do-all-symbols} to locate any but "
"the default obarray."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4547
msgid ""
"The @code{cl-loop} macro is complete except that @code{loop-finish} and type "
"specifiers are unimplemented."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4555
msgid ""
"The multiple-value return facility treats lists as multiple values, since "
"Emacs Lisp cannot support multiple return values directly. The macros will "
"be compatible with Common Lisp if @code{cl-values} or @code{cl-values-list} "
"is always used to return to a @code{cl-multiple-value-bind} or other "
"multiple-value receiver; if @code{cl-values} is used without "
"@code{cl-multiple-value-@dots{}} or vice-versa the effect will be different "
"from Common Lisp."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4561
msgid ""
"Many Common Lisp declarations are ignored, and others match the Common Lisp "
"standard in concept but not in detail. For example, local @code{special} "
"declarations, which are purely advisory in Emacs Lisp, do not rigorously "
"obey the scoping rules set down in Steele's book."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4563
msgid "The variable @code{cl--gensym-counter} starts out with zero."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4566
msgid ""
"The @code{cl-defstruct} facility is compatible, except that the @code{:type} "
"slot option is ignored."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4568
msgid "The second argument of @code{cl-check-type} is treated differently."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4582
msgid ""
"This package is meant to be used as an extension to Emacs Lisp, not as an "
"Emacs implementation of true Common Lisp. Some of the remaining differences "
"between Emacs Lisp and Common Lisp make it difficult to port large Common "
"Lisp applications to Emacs. For one, some of the features in this package "
"are not fully compliant with ANSI or Steele; @pxref{Common Lisp "
"Compatibility}. But there are also quite a few features that this package "
"does not provide at all. Here are some major omissions that you will want "
"to watch out for when bringing Common Lisp code into Emacs."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4589
msgid ""
"Case-insensitivity. Symbols in Common Lisp are case-insensitive by "
"default. Some programs refer to a function or variable as @code{foo} in one "
"place and @code{Foo} or @code{FOO} in another. Emacs Lisp will treat these "
"as three distinct symbols."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4594
msgid ""
"Some Common Lisp code is written entirely in upper case. While Emacs is "
"happy to let the program's own functions and variables use this convention, "
"calls to Lisp builtins like @code{if} and @code{defun} will have to be "
"changed to lower case."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4605
msgid ""
"Lexical scoping. In Common Lisp, function arguments and @code{let} bindings "
"apply only to references physically within their bodies (or within macro "
"expansions in their bodies). Traditionally, Emacs Lisp uses @dfn{dynamic "
"scoping} wherein a binding to a variable is visible even inside functions "
"called from the body. @xref{Dynamic Binding,,,elisp,GNU Emacs Lisp "
"Reference Manual}. Lexical binding is available since Emacs 24.1, so be "
"sure to set @code{lexical-binding} to @code{t} if you need to emulate this "
"aspect of Common Lisp. @xref{Lexical Binding,,,elisp,GNU Emacs Lisp "
"Reference Manual}."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4608
msgid ""
"Here is an example of a Common Lisp code fragment that would fail in Emacs "
"Lisp if @code{lexical-binding} were set to @code{nil}:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4614
#, no-wrap
msgid ""
"(defun map-odd-elements (func list)\n"
" (loop for x in list\n"
" for flag = t then (not flag)\n"
" collect (if flag x (funcall func x))))\n"
"\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4617
#, no-wrap
msgid ""
"(defun add-odd-elements (list x)\n"
" (map-odd-elements (lambda (a) (+ a x)) list))\n"
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4625
msgid ""
"With lexical binding, the two functions' usages of @code{x} are completely "
"independent. With dynamic binding, the binding to @code{x} made by "
"@code{add-odd-elements} will have been hidden by the binding in "
"@code{map-odd-elements} by the time the @code{(+ a x)} function is called."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4630
msgid ""
"Internally, this package uses lexical binding so that such problems do not "
"occur. @xref{Obsolete Lexical Binding}, for a description of the obsolete "
"@code{lexical-let} form that emulates a Common Lisp-style lexical binding "
"when dynamic binding is in use."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4638
msgid ""
"Reader macros. Common Lisp includes a second type of macro that works at "
"the level of individual characters. For example, Common Lisp implements the "
"quote notation by a reader macro called @code{'}, whereas Emacs Lisp's "
"parser just treats quote as a special case. Some Lisp packages use reader "
"macros to create special syntaxes for themselves, which the Emacs parser is "
"incapable of reading."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4646
msgid ""
"Other syntactic features. Common Lisp provides a number of notations "
"beginning with @code{#} that the Emacs Lisp parser won't understand. For "
"example, @samp{#| @dots{} |#} is an alternate comment notation, and "
"@samp{#+lucid (foo)} tells the parser to ignore the @code{(foo)} except in "
"Lucid Common Lisp."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4657
msgid ""
"Packages. In Common Lisp, symbols are divided into @dfn{packages}. Symbols "
"that are Lisp built-ins are typically stored in one package; symbols that "
"are vendor extensions are put in another, and each application program would "
"have a package for its own symbols. Certain symbols are ``exported'' by a "
"package and others are internal; certain packages ``use'' or import the "
"exported symbols of other packages. To access symbols that would not "
"normally be visible due to this importing and exporting, Common Lisp "
"provides a syntax like @code{package:symbol} or @code{package::symbol}."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4668
msgid ""
"Emacs Lisp has a single namespace for all interned symbols, and then uses a "
"naming convention of putting a prefix like @code{cl-} in front of the name. "
"Some Emacs packages adopt the Common Lisp-like convention of using "
"@code{cl:} or @code{cl::} as the prefix. However, the Emacs parser does not "
"understand colons and just treats them as part of the symbol name. Thus, "
"while @code{mapcar} and @code{lisp:mapcar} may refer to the same symbol in "
"Common Lisp, they are totally distinct in Emacs Lisp. Common Lisp programs "
"that refer to a symbol by the full name sometimes and the short name other "
"times will not port cleanly to Emacs."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4672
msgid ""
"Emacs Lisp does have a concept of ``obarrays'', which are package-like "
"collections of symbols, but this feature is not strong enough to be used as "
"a true package mechanism."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4687
msgid ""
"The @code{format} function is quite different between Common Lisp and Emacs "
"Lisp. It takes an additional ``destination'' argument before the format "
"string. A destination of @code{nil} means to format to a string as in Emacs "
"Lisp; a destination of @code{t} means to write to the terminal (similar to "
"@code{message} in Emacs). Also, format control strings are utterly "
"different; @code{~} is used instead of @code{%} to introduce format codes, "
"and the set of available codes is much richer. There are no notations like "
"@code{\\n} for string literals; instead, @code{format} is used with the "
"``newline'' format code, @code{~%}. More advanced formatting codes provide "
"such features as paragraph filling, case conversion, and even loops and "
"conditionals."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4694
msgid ""
"While it would have been possible to implement most of Common Lisp "
"@code{format} in this package (under the name @code{cl-format}, of course), "
"it was not deemed worthwhile. It would have required a huge amount of code "
"to implement even a decent subset of @code{format}, yet the functionality it "
"would provide over Emacs Lisp's @code{format} would rarely be useful."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4700
msgid ""
"Vector constants use square brackets in Emacs Lisp, but @code{#(a b c)} "
"notation in Common Lisp. To further complicate matters, Emacs has its own "
"@code{#(} notation for something entirely different---strings with "
"properties."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4707
msgid ""
"Characters are distinct from integers in Common Lisp. The notation for "
"character constants is also different: @code{#\\A} in Common Lisp where "
"Emacs Lisp uses @code{?A}. Also, @code{string=} and @code{string-equal} are "
"synonyms in Emacs Lisp, whereas the latter is case-insensitive in Common "
"Lisp."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4717
msgid ""
"Data types. Some Common Lisp data types do not exist in Emacs Lisp. "
"Rational numbers and complex numbers are not present, nor are large integers "
"(all integers are ``fixnums''). All arrays are one-dimensional. There are "
"no readtables or pathnames; streams are a set of existing data types rather "
"than a new data type of their own. Hash tables, random-states, and packages "
"(obarrays) are built from Lisp vectors or lists rather than being distinct "
"types."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4723
msgid ""
"The Common Lisp Object System (CLOS) is not implemented, nor is the Common "
"Lisp Condition System. However, the EIEIO package (@pxref{Top, , "
"Introduction, eieio, EIEIO}) does implement some CLOS functionality."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4732
msgid ""
"Common Lisp features that are completely redundant with Emacs Lisp features "
"of a different name generally have not been implemented. For example, "
"Common Lisp writes @code{defconstant} where Emacs Lisp uses "
"@code{defconst}. Similarly, @code{make-list} takes its arguments in "
"different ways in the two Lisps but does exactly the same thing, so this "
"package has not bothered to implement a Common Lisp-style @code{make-list}."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4736
msgid ""
"A few more notable Common Lisp features not included in this package: "
"@code{compiler-let}, @code{prog}, @code{ldb/dpb}, @code{cerror}."
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4744
msgid ""
"Recursion. While recursion works in Emacs Lisp just like it does in Common "
"Lisp, various details of the Emacs Lisp system and compiler make recursion "
"much less efficient than it is in most Lisps. Some schools of thought "
"prefer to use recursion in Lisp over other techniques; they would sum a list "
"of numbers using something like"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4750
#, no-wrap
msgid ""
"(defun sum-list (list)\n"
" (if list\n"
" (+ (car list) (sum-list (cdr list)))\n"
" 0))\n"
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4755
msgid "where a more iteratively-minded programmer might write one of these forms:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4759
#, no-wrap
msgid ""
"(let ((total 0)) (dolist (x my-list) (incf total x)) total)\n"
"(loop for x in my-list sum x)\n"
msgstr ""
#. type: itemize
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4766
msgid ""
"While this would be mainly a stylistic choice in most Common Lisps, in Emacs "
"Lisp you should be aware that the iterative forms are much faster than "
"recursion. Also, Lisp programmers will want to note that the current Emacs "
"Lisp compiler does not optimize tail recursion."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4776
msgid ""
"This section describes some features of the package that are obsolete and "
"should not be used in new code. They are either only provided by the old "
"@file{cl.el} entry point, not by the newer @file{cl-lib.el}; or where "
"versions with a @samp{cl-} prefix do exist they do not behave in exactly the "
"same way."
msgstr ""
#. type: appendixsec
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4781 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:4783
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4784
#, no-wrap
msgid "Obsolete Lexical Binding"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4781
msgid "An approximation of lexical binding."
msgstr ""
#. type: appendixsec
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4781 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:4899
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4900
#, no-wrap
msgid "Obsolete Macros"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4781
msgid "Obsolete macros."
msgstr ""
#. type: node
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4781 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:4974
#, no-wrap
msgid "Obsolete Setf Customization"
msgstr ""
#. type: menuentry
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4781
msgid "Obsolete ways to customize setf."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4789
msgid ""
"The following macros are extensions to Common Lisp, where all bindings are "
"lexical unless declared otherwise. These features are likewise obsolete "
"since the introduction of true lexical binding in Emacs 24.1."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4790
#, no-wrap
msgid "lexical-let (bindings@dots{}) forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4793
msgid ""
"This form is exactly like @code{let} except that the bindings it establishes "
"are purely lexical."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4801
msgid ""
"Lexical bindings are similar to local variables in a language like C: Only "
"the code physically within the body of the @code{lexical-let} (after macro "
"expansion) may refer to the bound variables."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4809
#, no-wrap
msgid ""
"(setq a 5)\n"
"(defun foo (b) (+ a b))\n"
"(let ((a 2)) (foo a))\n"
" @result{} 4\n"
"(lexical-let ((a 2)) (foo a))\n"
" @result{} 7\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4817
msgid ""
"In this example, a regular @code{let} binding of @code{a} actually makes a "
"temporary change to the global variable @code{a}, so @code{foo} is able to "
"see the binding of @code{a} to 2. But @code{lexical-let} actually creates a "
"distinct local variable @code{a} for use within its body, without any effect "
"on the global variable of the same name."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4822
msgid ""
"The most important use of lexical bindings is to create @dfn{closures}. A "
"closure is a function object that refers to an outside lexical variable "
"(@pxref{Closures,,,elisp,GNU Emacs Lisp Reference Manual}). For example:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4830
#, no-wrap
msgid ""
"(defun make-adder (n)\n"
" (lexical-let ((n n))\n"
" (lambda (m) (+ n m))))\n"
"(setq add17 (make-adder 17))\n"
"(funcall add17 4)\n"
" @result{} 21\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4838
msgid ""
"The call @code{(make-adder 17)} returns a function object which adds 17 to "
"its argument. If @code{let} had been used instead of @code{lexical-let}, "
"the function object would have referred to the global @code{n}, which would "
"have been bound to 17 only during the call to @code{make-adder} itself."
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4855
#, no-wrap
msgid ""
"(defun make-counter ()\n"
" (lexical-let ((n 0))\n"
" (cl-function (lambda (&optional (m 1)) (cl-incf n m)))))\n"
"(setq count-1 (make-counter))\n"
"(funcall count-1 3)\n"
" @result{} 3\n"
"(funcall count-1 14)\n"
" @result{} 17\n"
"(setq count-2 (make-counter))\n"
"(funcall count-2 5)\n"
" @result{} 5\n"
"(funcall count-1 2)\n"
" @result{} 19\n"
"(funcall count-2)\n"
" @result{} 6\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4861
msgid ""
"Here we see that each call to @code{make-counter} creates a distinct local "
"variable @code{n}, which serves as a private counter for the function object "
"that is returned."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4871
msgid ""
"Closed-over lexical variables persist until the last reference to them goes "
"away, just like all other Lisp objects. For example, @code{count-2} refers "
"to a function object which refers to an instance of the variable @code{n}; "
"this is the only reference to that variable, so after @code{(setq count-2 "
"nil)} the garbage collector would be able to delete this instance of "
"@code{n}. Of course, if a @code{lexical-let} does not actually create any "
"closures, then the lexical variables are free as soon as the "
"@code{lexical-let} returns."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4877
msgid ""
"Many closures are used only during the extent of the bindings they refer to; "
"these are known as ``downward funargs'' in Lisp parlance. When a closure is "
"used in this way, regular Emacs Lisp dynamic bindings suffice and will be "
"more efficient than @code{lexical-let} closures:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4883
#, no-wrap
msgid ""
"(defun add-to-list (x list)\n"
" (mapcar (lambda (y) (+ x y))) list)\n"
"(add-to-list 7 '(1 2 5))\n"
" @result{} (8 9 12)\n"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4888
msgid ""
"Since this lambda is only used while @code{x} is still bound, it is not "
"necessary to make a true closure out of it."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4893
msgid ""
"You can use @code{defun} or @code{flet} inside a @code{lexical-let} to "
"create a named closure. If several closures are created in the body of a "
"single @code{lexical-let}, they all close over the same instance of the "
"lexical variable."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4894
#, no-wrap
msgid "lexical-let* (bindings@dots{}) forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4897
msgid ""
"This form is just like @code{lexical-let}, except that the bindings are made "
"sequentially in the manner of @code{let*}."
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4906
msgid ""
"The following macros are obsolete, and are replaced by versions with a "
"@samp{cl-} prefix that do not behave in exactly the same way. Consequently, "
"the @file{cl.el} versions are not simply aliases to the @file{cl-lib.el} "
"versions."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4907
#, no-wrap
msgid "flet (bindings@dots{}) forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4912
msgid ""
"This macro is replaced by @code{cl-flet} (@pxref{Function Bindings}), which "
"behaves the same way as Common Lisp's @code{flet}. This @code{flet} takes "
"the same arguments as @code{cl-flet}, but does not behave in precisely the "
"same way."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4918
msgid ""
"While @code{flet} in Common Lisp establishes a lexical function binding, "
"this @code{flet} makes a dynamic binding (it dates from a time before Emacs "
"had lexical binding). The result is that @code{flet} affects indirect calls "
"to a function as well as calls directly inside the @code{flet} form itself."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4923
msgid ""
"This will even work on Emacs primitives, although note that some calls to "
"primitive functions internal to Emacs are made without going through the "
"symbol's function cell, and so will not be affected by @code{flet}. For "
"example,"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4927
#, no-wrap
msgid ""
"(flet ((message (&rest args) (push args saved-msgs)))\n"
" (do-something))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4937
msgid ""
"This code attempts to replace the built-in function @code{message} with a "
"function that simply saves the messages in a list rather than displaying "
"them. The original definition of @code{message} will be restored after "
"@code{do-something} exits. This code will work fine on messages generated "
"by other Lisp code, but messages generated directly inside Emacs will not be "
"caught since they make direct C-language calls to the message routines "
"rather than going through the Lisp @code{message} function."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4943
msgid ""
"For those cases where the dynamic scoping of @code{flet} is desired, "
"@code{cl-flet} is clearly not a substitute. The most direct replacement "
"would be instead to use @code{cl-letf} to temporarily rebind "
"@code{(symbol-function '@var{fun})}. But in most cases, a better substitute "
"is to use advice, such as:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4950
#, no-wrap
msgid ""
"(defvar my-fun-advice-enable nil)\n"
"(add-advice '@var{fun} :around\n"
" (lambda (orig &rest args)\n"
" (if my-fun-advice-enable (do-something)\n"
" (apply orig args))))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4954
msgid ""
"so that you can then replace the @code{flet} with a simple dynamically "
"scoped binding of @code{my-fun-advice-enable}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4961
msgid ""
"Note that many primitives (e.g., @code{+}) have special byte-compile "
"handling. Attempts to redefine such functions using @code{flet}, "
"@code{cl-letf}, or advice will fail when byte-compiled."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4963
#, no-wrap
msgid "labels (bindings@dots{}) forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4968
msgid ""
"This macro is replaced by @code{cl-labels} (@pxref{Function Bindings}), "
"which behaves the same way as Common Lisp's @code{labels}. This "
"@code{labels} takes the same arguments as @code{cl-labels}, but does not "
"behave in precisely the same way."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4972
msgid ""
"This version of @code{labels} uses the obsolete @code{lexical-let} form "
"(@pxref{Obsolete Lexical Binding}), rather than the true lexical binding "
"that @code{cl-labels} uses."
msgstr ""
#. type: appendixsec
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4975
#, no-wrap
msgid "Obsolete Ways to Customize Setf"
msgstr ""
#. type: Plain text
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4983
msgid ""
"Common Lisp defines three macros, @code{define-modify-macro}, "
"@code{defsetf}, and @code{define-setf-method}, that allow the user to extend "
"generalized variables in various ways. In Emacs, these are obsolete, "
"replaced by various features of @file{gv.el} in Emacs 24.3. @xref{Adding "
"Generalized Variables,,,elisp,GNU Emacs Lisp Reference Manual}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4985
#, no-wrap
msgid "define-modify-macro name arglist function [doc-string]"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4989
msgid ""
"This macro defines a ``read-modify-write'' macro similar to @code{cl-incf} "
"and @code{cl-decf}. You can replace this macro with @code{gv-letplace}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4992
msgid ""
"The macro @var{name} is defined to take a @var{place} argument followed by "
"additional arguments described by @var{arglist}. The call"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4995
#, no-wrap
msgid "(@var{name} @var{place} @var{args}@dots{})\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:4999 /Users/suzume/Documents/Repositories/Projet
#: OmegaT de Documentation Emacs - Sources/doc/misc/cl.texi:5056
msgid "will be expanded to"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5002
#, no-wrap
msgid "(cl-callf @var{func} @var{place} @var{args}@dots{})\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5006
msgid "which in turn is roughly equivalent to"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5009
#, no-wrap
msgid "(setf @var{place} (@var{func} @var{place} @var{args}@dots{}))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5012
msgid "For example:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5016
#, no-wrap
msgid ""
"(define-modify-macro incf (&optional (n 1)) +)\n"
"(define-modify-macro concatf (&rest args) concat)\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5020
msgid ""
"Note that @code{&key} is not allowed in @var{arglist}, but @code{&rest} is "
"sufficient to pass keywords on to the function."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5025
msgid ""
"Most of the modify macros defined by Common Lisp do not exactly follow the "
"pattern of @code{define-modify-macro}. For example, @code{push} takes its "
"arguments in the wrong order, and @code{pop} is completely irregular."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5028
msgid "The above @code{incf} example could be written using @code{gv-letplace} as:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5033
#, no-wrap
msgid ""
"(defmacro incf (place &optional n)\n"
" (gv-letplace (getter setter) place\n"
" (macroexp-let2 nil v (or n 1)\n"
" (funcall setter `(+ ,v ,getter)))))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5042
#, no-wrap
msgid "defsetf access-fn update-fn"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5045
msgid ""
"This is the simpler of two @code{defsetf} forms, and is replaced by "
"@code{gv-define-simple-setter}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5049
msgid ""
"With @var{access-fn} the name of a function that accesses a place, this "
"declares @var{update-fn} to be the corresponding store function. From now "
"on,"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5052
#, no-wrap
msgid "(setf (@var{access-fn} @var{arg1} @var{arg2} @var{arg3}) @var{value})\n"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5059
#, no-wrap
msgid "(@var{update-fn} @var{arg1} @var{arg2} @var{arg3} @var{value})\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5067
msgid ""
"The @var{update-fn} is required to be either a true function, or a macro "
"that evaluates its arguments in a function-like way. Also, the "
"@var{update-fn} is expected to return @var{value} as its result. Otherwise, "
"the above expansion would not obey the rules for the way @code{setf} is "
"supposed to behave."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5072
msgid ""
"As a special (non-Common-Lisp) extension, a third argument of @code{t} to "
"@code{defsetf} says that the return value of @code{update-fn} is not "
"suitable, so that the above @code{setf} should be expanded to something more "
"like"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5077
#, no-wrap
msgid ""
"(let ((temp @var{value}))\n"
" (@var{update-fn} @var{arg1} @var{arg2} @var{arg3} temp)\n"
" temp)\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5080
msgid "Some examples are:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5084
#, no-wrap
msgid ""
"(defsetf car setcar)\n"
"(defsetf buffer-name rename-buffer t)\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5087
msgid "These translate directly to @code{gv-define-simple-setter}:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5091
#, no-wrap
msgid ""
"(gv-define-simple-setter car setcar)\n"
"(gv-define-simple-setter buffer-name rename-buffer t)\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5094
#, no-wrap
msgid "defsetf access-fn arglist (store-var) forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5097
msgid ""
"This is the second, more complex, form of @code{defsetf}. It can be "
"replaced by @code{gv-define-setter}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5105
msgid ""
"This form of @code{defsetf} is rather like @code{defmacro} except for the "
"additional @var{store-var} argument. The @var{forms} should return a Lisp "
"form that stores the value of @var{store-var} into the generalized variable "
"formed by a call to @var{access-fn} with arguments described by "
"@var{arglist}. The @var{forms} may begin with a string which documents the "
"@code{setf} method (analogous to the doc string that appears at the front of "
"a function)."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5107
msgid "For example, the simple form of @code{defsetf} is shorthand for"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5111
#, no-wrap
msgid ""
"(defsetf @var{access-fn} (&rest args) (store)\n"
" (append '(@var{update-fn}) args (list store)))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5118
msgid ""
"The Lisp form that is returned can access the arguments from @var{arglist} "
"and @var{store-var} in an unrestricted fashion; macros like @code{cl-incf} "
"that invoke this setf-method will insert temporary variables as needed to "
"make sure the apparent order of evaluation is preserved."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5120
msgid "Another standard example:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5124
#, no-wrap
msgid ""
"(defsetf nth (n x) (store)\n"
" `(setcar (nthcdr ,n ,x) ,store))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5127
msgid "You could write this using @code{gv-define-setter} as:"
msgstr ""
#. type: example
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5131
#, no-wrap
msgid ""
"(gv-define-setter nth (store n x)\n"
" `(setcar (nthcdr ,n ,x) ,store))\n"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5134
#, no-wrap
msgid "define-setf-method access-fn arglist forms@dots{}"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5137
msgid ""
"This is the most general way to create new place forms. You can replace "
"this by @code{gv-define-setter} or @code{gv-define-expander}."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5141
msgid ""
"When a @code{setf} to @var{access-fn} with arguments described by "
"@var{arglist} is expanded, the @var{forms} are evaluated and must return a "
"list of five items:"
msgstr ""
#. type: enumerate
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5145
msgid "A list of @dfn{temporary variables}."
msgstr ""
#. type: enumerate
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5150
msgid ""
"A list of @dfn{value forms} corresponding to the temporary variables above. "
"The temporary variables will be bound to these value forms as the first step "
"of any operation on the generalized variable."
msgstr ""
#. type: enumerate
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5154
msgid ""
"A list of exactly one @dfn{store variable} (generally obtained from a call "
"to @code{gensym})."
msgstr ""
#. type: enumerate
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5159
msgid ""
"A Lisp form that stores the contents of the store variable into the "
"generalized variable, assuming the temporaries have been bound as described "
"above."
msgstr ""
#. type: enumerate
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5163
msgid ""
"A Lisp form that accesses the contents of the generalized variable, assuming "
"the temporaries have been bound."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5172
msgid ""
"This is exactly like the Common Lisp macro of the same name, except that the "
"method returns a list of five values rather than the five values themselves, "
"since Emacs Lisp does not support Common Lisp's notion of multiple return "
"values. (Note that the @code{setf} implementation provided by @file{gv.el} "
"does not use this five item format. Its use here is only for backwards "
"compatibility.)"
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5174
msgid "Once again, the @var{forms} may begin with a documentation string."
msgstr ""
#. type: defmac
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5185
msgid ""
"A setf-method should be maximally conservative with regard to temporary "
"variables. In the setf-methods generated by @code{defsetf}, the second "
"return value is simply the list of arguments in the place form, and the "
"first return value is a list of a corresponding number of temporary "
"variables generated by @code{cl-gensym}. Macros like @code{cl-incf} that "
"use this setf-method will optimize away most temporaries that turn out to be "
"unnecessary, so there is little reason for the setf-method itself to "
"optimize."
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5189
#, no-wrap
msgid "get-setf-method place &optional env"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5195
#, no-wrap
msgid ""
"This function returns the setf-method for @var{place}, by\n"
"invoking the definition previously recorded by @code{defsetf}\n"
"or @code{define-setf-method}. The result is a list of five\n"
"values as described above. You can use this function to build\n"
"your own @code{cl-incf}-like modify macros.\n"
"\n"
msgstr ""
#. type: defun
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5201
#, no-wrap
msgid ""
"The argument @var{env} specifies the ``environment'' to be\n"
"passed on to @code{macroexpand} if @code{get-setf-method} should\n"
"need to expand a macro in @var{place}. It should come from\n"
"an @code{&environment} argument to the macro or setf-method\n"
"that called @code{get-setf-method}.\n"
msgstr ""
#. type: include
#: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs -
#: Sources/doc/misc/cl.texi:5207
#, no-wrap
msgid "doclicense.texi"
msgstr ""