Где я могу найти Java SDK в Linux после его установки?

Да, можно переопределить синтаксис так, чтобы Lisp стал компилятором. Вы делаете это использование "Макросы Читателя", которые отличаются от нормальных "Макросов Компилятора", о которых Вы, вероятно, думаете.

язык Common LISP имеет встроенное средство для определения нового синтаксиса для макросов читателя и читателя для обработки того синтаксиса. Эта обработка сделана во время чтения (который прибывает перед компиляцией или время оценки). Для получения дополнительной информации об определении макросов читателя в языке Common LISP посмотрите Гиперспецификацию языка Common LISP - Вы захотите читать Ch. 2, "Синтаксис" и Ch. 23, "Читатель" . (Я полагаю, что Схема имеет то же средство, но я не так знаком с ним - посмотрите источники Схемы для язык программирования Дуги ).

Как простой пример, давайте предположим, что Вы хотите, чтобы Lisp использовал фигурные скобки, а не круглые скобки. Это требует чего-то как следующие определения читателя:

;; { and } become list delimiters, along with ( and ).
(set-syntax-from-char #\{ #\( )
(defun lcurly-brace-reader (stream inchar) ; this was way too easy to do.
  (declare (ignore inchar))
  (read-delimited-list #\} stream t))
(set-macro-character #\{ #'lcurly-brace-reader)

(set-macro-character #\} (get-macro-character #\) ))
(set-syntax-from-char #\} #\) )

;; un-lisp -- make parens meaningless
(set-syntax-from-char #\) #\] ) ; ( and ) become normal braces
(set-syntax-from-char #\( #\[ )

Вы говорите Lisp, который {похож (и что} похож на a). Тогда Вы создаете функцию (lcurly-brace-reader), который назовет читатель каждый раз, когда она видит {и Вы используете set-macro-character для присвоения той функции {. Тогда Вы говорите Lisp, что (и) похожи [и] (то есть, не значимый синтаксис).

Другие вещи, которые Вы могли сделать, включают, например, создание нового строкового синтаксиса или использование [и] включить инфиксную нотацию и обработать его в S-выражения.

можно также пойти далеко вне этого, переопределив весь синтаксис с собственными макро-символами, которые инициируют действия в читателе, таким образом, небо действительно будет пределом. Это - только одна из причин, почему Paul Graham и другие продолжают говорить, что Lisp является хорошим языком, на котором можно записать компилятор.

174
задан joe 2 October 2019 в 07:30
поделиться

1 ответ

Это - лучший способ, который работал на меня, Выполняют этот Command:-

$(dirname $(readlink $(which javac)))/java_home
0
ответ дан 23 November 2019 в 20:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: