|
0 / 0 / 0
Регистрация: 26.08.2013
Сообщений: 34
|
|
Используя функцию DEFUN, определить функцию f (a x)01.10.2013, 19:56. Показов 3664. Ответов 27
Метки нет (Все метки)
Используя функцию DEFUN, определить функцию f (a x), где a - s-выражение, a x –список, состоящий из 2-3 элементов, которая удаляет из списка x первый элемент, если хотя бы один из элементов равен а, и не изменяет x в остальных случаях.
0
|
|
| 01.10.2013, 19:56 | |
|
Ответы с готовыми решениями:
27
Используя функцию DEFUN, определить функцию Используя функцию DEFUN, определить функцию |
|
2304 / 1063 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
||
| 03.10.2013, 17:35 | ||
|
P.S. Если препод говорит, что defun - функция - меняйте ВУЗ
0
|
||
|
2304 / 1063 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
|||
| 03.10.2013, 18:14 | |||
|
Добавлено через 1 минуту
0
|
|||
|
Супер-модератор
|
||||
| 03.10.2013, 18:17 | ||||
|
Добавлено через 48 секунд
0
|
||||
|
2304 / 1063 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
||||
| 03.10.2013, 18:31 | ||||
|
1
|
||||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,780
|
||
| 03.10.2013, 18:38 | ||
|
elisp не следует ANSI CL, как и Racket и различные реализации Scheme. Кроме того, в схеме define как раз-таки специальный оператор, потому что не может быть выражен ни через что. А в picolisp, кажется, нет разницы между функцией и макросом. В случае ТС, конечно, это скорее всего макрос MuLisp (уж больно часто он мелькает в темах по лабораторкам и в основном преподы, использующие CL, достаточно грамотны).
1
|
||
|
2304 / 1063 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
|
| 03.10.2013, 18:54 | |
|
0
|
|
|
Супер-модератор
|
||
| 03.10.2013, 19:10 | ||
|
А без этого приходится привлекать определения типа "специальная форма", что нарушает стройность. Введение макро ситуацию не меняет: пусть в CL COND - это макро. Но первична if, а что есть if? Специальная форма... Реализации могут быть разными... Например, в CL логические функции AND и OR - макросы (и это не позволяет использовать их в конструкции типа (apply 'AND ...). А в HomeLisp (я ни в коем случае не ставлю HomeLisp рядом с профессиональными реализациями!) AND и OR - это функции типа FSUBR (c переменным числом аргументов; аргументы вычисляются в теле и последовательно, что позволяет обеспечить примитивную "лень". И вызов (apply 'AND ...) вполне возможен. Что-то много букв написал...
0
|
||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,780
|
||||
| 03.10.2013, 19:21 | ||||
|
http://software-lab.de/doc/tut.html#fun http://software-lab.de/doc/faq.html#macros Другой пример — Tcl, хотя там это несколько по-другому. Добавлено через 7 минут
2
|
||||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,780
|
|||
| 03.10.2013, 22:21 | |||
|
Когда мы переходим к конкурентным программам или взаимодействию с внешним разделяемым мутабельным ресурсом (БД например), все становится еще сложней. Можно также прочитать про ленивость + БД в Хаскелле, там эту проблему решает рантайм и монады, но проблема-то есть. Макросы же выполняются на этапе компиляции, это гарантирует, что в рантайме никаких подводных камней не вылезет + оптимизация скорости. loop например так же эффективен, как и do, и ручное tagbody+go. А как будет тормозить аналогичный loop в том же picolisp? Добавлено через 14 минут А ленивые вычисления можно и на Scheme/CL сделать с помощью макр.
2
|
|||
|
2304 / 1063 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
|||
| 04.10.2013, 00:26 | |||
{} - квота, [] - вызов функции (команды). И сама команда никак не может повлиять на вычисления аргументов (ну конечно, кроме случая, когда аргументы квотированы и функция решает, что там и когда вычислить).Добавлено через 30 секунд
0
|
|||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,780
|
||
| 04.10.2013, 08:11 | ||
|
0
|
||
|
Супер-модератор
|
|||
| 04.10.2013, 09:03 | |||
|
Про "лень" - это я больше для красного словца... Просто при реализации AND (например) первый же аргумент, равный Nil порождает завершение. Но в целом - все равно спасибо за критику!
0
|
|||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,780
|
||||
| 04.10.2013, 11:00 | ||||
|
1
|
||||
|
2304 / 1063 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
|||||||||||||||
| 04.10.2013, 16:21 | |||||||||||||||
Разница в том, что символы в CL записанные явным образом - вычисляются, а в Tcl они квотированы. Для взятия значения из переменной в tcl нужно приписать $ к индетификатору. Добавлено через 4 минуты И порядок вычисления аргументов также как и в CL определён слева на право:
Добавлено через 24 секунды Добавлено через 4 минуты Исключительно ради ясности.
1
|
|||||||||||||||
|
Супер-модератор
|
|
| 04.10.2013, 16:22 | |
|
nullxdth, все ОК, спасибо!
1
|
|
| 04.10.2013, 16:22 | |
|
Помогаю со студенческими работами здесь
20
Используя функцию DEFUN, определить фукцию f (a x)
Clojure Используя функцию Defun, определить функцию f(a x), где а-S- выражение, а х-список, состоящий из 2-3 элементов, которая заменяет на а все атомы списка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|