way of thinking
1. Conditional structure (i.e. "if-then-else" structure).
Nowadays, everyone takes this for granted, but Fortran I does not have this structure. It just has a goto structure based on the underlying machine instructions.
2. Function is also a data type.
In Lisp language. Functions, like integers or strings, are also a type of data type. It has its own literal representation. It can be stored in a variable or passed as a parameter. It has all the functions that a data type should have.
3. Recursion.
Lisp was the first high-level language to support recursive functions.
4. Dynamic type of variables.
In Lisp language, all variables are actually pointers, and the values they point to have different types. The variable itself does not. Copying a variable is equivalent to copying a pointer. rather than copying the data they point to.
5. Garbage collection mechanism.
6. A program consists of expressions.
A Lisp program is a collection of blocks of expressions. Every expression returns a value.
This is very different from Fortran and most subsequent languages. Their programs consist of expressions and statements.
7. Symbol type.
A symbol is actually a pointer. Pointer to a string stored in a hash table.
so. To compare whether two symbols are equal, you only need to check whether their pointers are the same, without comparing them character by character.
8. The code uses a tree notation (notation) composed of symbols and constants.
9. The entire language is available at all times.
Lisp doesn't really distinguish between read time, compile time, and execution time. You can compile or execute code at read time; you can also read or execute code at compile time. Code can also be read or compiled during execution.
Function introduction
Send and receive emails
Edit remote files via FTP/TRAMP
Log in to the host via Telnet
on newsgroups
Log in to IRC to communicate with friends
View calendar
Write an article outline
Editing for multiple programming languages
Debugging programs, combined with GDB, EDebug, etc. Supports C/C++, Perl, Python, Lisp, etc.
play games
calculator
keep a diary
Manage schedule, Task, ToDo, appointments, etc.
Personal information management
Directory management
file comparison
Read the info and man documentation
Browse website
Provide a unified operating interface for various programs (TeX, etc.)
Change log
Security vulnerabilities related to rich text mode have been removed.
Rich text mode has x-display which supports decoding.
This feature allows the "display" attribute to be saved as part of the text.
Emacs's display properties support evaluating the text contained in arbitrary Lisp form instantiations, so decoding "x-display" is prone to executing arbitrary malicious Lisp code (e.g., as part of a sent e-mail message).
This vulnerability was introduced in Emacs 21.1. To work in Emacs versions prior to 25.3, append the following to your ~/Emacs initialization file:
The “richness” of EVAL afterload
DEFUN rich decoding display props (starting end and optional parameter list start and end
Wildebeest no longer supports "text" and "rich" inline MIME objects.
This support is disabled to avoid evaluation of arbitrary Lisp code contained in emails and news articles.
it works
it works
it works