10700 lines
387 KiB
Plaintext
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 ""
|