SICP - это книга, используемая во вводном курсе по информатике. Хотя он объясняет некоторые продвинутые концепции, он использует очень крошечный язык, подмножество языка Схемы и под-подмножество любого реального мира Scheme или Lisp, которое обеспечивает типичная реализация.
В SICP нет, например, макросов. Добавьте, что стандартная схема имеет только позиционные параметры для функций.
В «реальном» Lisp или Scheme можно использовать один или несколько из следующих действий:
объектов или записи/сооружение (затворы бедняка), которые групповые вещи. Переданный объект может содержать несколько элементов данных, которые в противном случае должны были бы передаваться «spread».
значения по умолчанию для необязательных переменных. Таким образом, нам нужно только передать те, которые мы хотим иметь определенное значение по умолчанию
необязательные и именованные аргументы. Это позволяет использовать гибкие списки аргументов, которые являются более наглядными.
расчетные аргументы. Значение или значение по умолчанию аргументов может быть вычислено на основе других аргументов
выше приводит к более сложным для написания функциональных интерфейсов, которые часто проще в использовании.
В Lisp это хороший стиль, чтобы иметь описательные имена для аргументов, а также предоставлять онлайн-документацию для интерфейса. В среде разработки будет отображаться информация о интерфейсе функции, поэтому эта информация обычно является только нажатием клавиши или даже отображается автоматически.
Это также хороший стиль для любого нетривиального интерфейса, который должен использоваться интерактивно пользователем/разработчиком для проверки его аргументов во время выполнения.
Что случилось с методом с 4-мя более чем 4-мя аргументами? – Falmarri
@Falmarri, обычно сложно иметь в виду такой API +, вы можете ошибиться в порядке аргументов. –
Это не похоже на причины произвольного ограничения 4 аргументов. – Falmarri