Понимание конструкции (пункт. Содержание) и непрерывного образования - PullRequest
2 голосов
/ 17 апреля 2020

Я только начал изучать Scheme Lisp и нуждался в некотором освещении. Я столкнулся с фрагментом на сайте https://www.gnu.org/software/guile/manual/html_node/Types-and-the-Web.html, который я не обнаружил (содержание пункта)

Это не вызвало никаких ошибок в Оболочка слова фрагмента были более или менее в качестве ключевых слов или встроенных функций. Я не нашел функцию para, описанную в inte rnet. Также точка . кажется странной в выражении.

Может кто-нибудь объяснить его синтаксис и сообщить веб-индекс всех функций Scheme Lisp, пожалуйста?

1 Ответ

4 голосов
/ 17 апреля 2020

[Обновление: спасибо пользователю coredump за разъяснение по поводу вариаций c аргументы]

Вы нигде не нашли para, потому что он там определен - это определение функции с переменной количество аргументов:

(define (para . contents)
    (string-append "<p>" (string-concatenate contents) "</p>"))

Это означает, что она определяет функцию, которая принимает в качестве аргументов несколько строк, которые затем сохраняются в списке с именем contents, и возвращает одну строку, которая состоит из HTML p-тега, окружающего содержимое, которое вы передали.

Таким образом, вы можете назвать его как

(para "This is a sentence. " "And another one. " "The third one. ")

(Запишите пробелы после полных остановок.) И это будет return

"<p>This is a sentence. And another one. The third one. </p>"

Что касается индекса функций Схемы: взгляните на Стандарт Схемы (ссылка для R5RS).

...