Главная /
Разработка приложений на языке Visual Prolog
Разработка приложений на языке Visual Prolog - ответы на тесты Интуит
Курс посвящен практическому использованию логического программирования. Рассматриваются примеры разработки приложений на современной версии языка Visual Prolog.
Список вопросов:
- # В редактор окна drawFrom можно войти с помощью элемента дерева проекта
- # Окно атрибутов главного окна приложения открывается с помощью элемента дерева проекта
- # Эксперт окон (Dialog and Window Expert) открывается с помощью элемента дерева проекта
- # Предикат обработки события выбора команды меню принадлежит предикатному домену
- # Предикат обработки события изменения размеров окна принадлежит предикатному домену
- # Предикат обработки события, объявляющего клиентскую область окна недействительной и требующей перерисовки, принадлежит предикатному домену
- # Предикат invalidate/0:
- # Определение предиката onPaint имеет вид: onPaint(_, _, GDI):- GDI:clear(color_Green). В результате вызова подцели invalidate()
- # Определение предиката onPaint имеет вид: onPaint(_, _, GDI):- GDI:clear(color_Green), GDI:clear(color_Red) . В результате вызова подцели invalidate() клиентская область окна будет закрашена
- # Точка pnt(100, 200) в клиентской области окна находится
- # Укажите точку, которая находится ближе всего к верхней границе клиентской области окна:
- # Укажите точку, которая отстоит дальше всего от левой границы клиентской области окна:
- # Определение предиката onPaint имеет вид: onPaint(_, _, GDI):- GDI:setPen(pen(1, ps_Solid, color_Red)), GDI:drawLine(pnt(0, 100), pnt(200, 100)), GDI:setPen(pen(1, ps_Solid, color_Blue)), GDI:drawLine(pnt(100, 0), pnt(100, 200)). Определите цвета отрезков:
- # Определение предиката onPaint имеет вид: onPaint(_, _, GDI):- GDI:setPen(pen(1, ps_Solid, color_Yellow)), GDI:drawLine(pnt(100, 100), pnt(200, 200)), GDI:setPen(pen(5, ps_Solid, color_Green)), GDI:drawLine(pnt(100, 200), pnt(200, 100)). Определите цвета отрезков:
- # Определение предиката onPaint имеет вид: onPaint(_, _, GDI):- Pnt = pnt(100, 100), L = [pnt(0, 0), pnt(100, 100), pnt(100, 200), pnt(200, 100)], list::forAll(L, {(Pnt1):- GDI:drawLine(Pnt, Pnt1)}). Сколько отрезков будет содержать изображение?
- # Ширина прямоугольника – это
- # Пусть Rect = rct(10, 20, 40, 80). Высота прямоугольника Rect равна
- # Определение предиката outerRectangle имеет вид: outerRectangle(rct(X1, Y1, X2, Y2)) = rct(X1 - 10, Y1 - 10, X2 + 10, Y2 + 10). Пусть Rect1 = rct(10, 10, 90, 90), Rect2 = outerRectangle(Rect1). Площадь квадрата Rect1 составляет от площади квадрата Rect2
- # Определение предиката onPaint имеет вид: onPaint(_, _, GDI):- getClientSize(W, H), GDI:drawArc(rct(0, 0, W, H), pnt(W div 2, 0), pnt(W div 2, H)). Дуга отображается
- # Определение предиката onPaint имеет вид: onPaint(_, _, GDI):- getClientSize(W, H), GDI:drawArc(rct(0, 0, W, H), pnt(W, H div 2), pnt(0, H div 2)). Дуга отображается
- # Определение предиката onPaint имеет вид: onPaint(_, _, GDI):- getClientSize(W, H), GDI:drawArc(rct(0, 0, W, H), pnt(0, H div 2), pnt(W div 2, H)). Дуга отображается
- # Верхняя половина дуги эллипса, вписанного в клиентскую область окна со сторонами W и H, отобразится в результате вызова подцели
- # Правая верхняя четверть дуги эллипса, вписанного в клиентскую область окна со сторонами W и H, отобразится в результате вызова подцели
- # Левая половина дуги эллипса, вписанного в клиентскую область окна со сторонами W и H, отобразится в результате вызова подцели
- # Значение из поля целых чисел (Integer Control) можно найти с помощью подцели:
- # Поместить значение 10 в поле целых чисел (Integer Control) можно с помощью подцели:
- # Увеличить на 10 значение, которое записано в поле целых чисел (Integer Control), можно с помощью подцели:
- # Укажите решение для цели B = toBoolean(1 = 2)
- # Укажите решение для цели B = toBoolean(1 + 1 = 2)
- # Укажите решение для цели B = toBoolean(1 = 1)
- # Определение предиката move имеет вид: move() = tuple(I, J):- L = [tuple(0, 0), tuple(0, 1), tuple(0, 2), tuple(1, 0), tuple(1, 1)], tuple(I, J) in L, list::all(L, {(tuple(I1, J1)):- math::abs(I - I1) + math::abs(J - J1) <= 2}). Сколько решений имеет цель X = move()?
- # Определение предиката move имеет вид: move() = tuple(I, J):- L = [tuple(0, 0), tuple(0, 1), tuple(0, 2), tuple(1, 0), tuple(1, 1), tuple(1, 2)], tuple(I, J) in L, list::all(L, {(tuple(I1, J1)):- math::max(math::abs(I - I1), math::abs(J - J1)) <= 1}). Сколько решений имеет цель X = move()?
- # Определение предиката move имеет вид: move() = tuple(I, J):- L = [tuple(0, 0), tuple(0, 1), tuple(0, 2), tuple(1, 0), tuple(1, 1), tuple(1, 2)], tuple(I, J) in L, list::all(L, {(tuple(_, J1)):- math::abs(J - J1)) <= 1}). Укажите все решения, которые имеет цель X = move()?
- # Определение предиката move имеет вид: move() = tuple(I, J):- I = std::fromTo(0, 2), J = std::fromTo(0, 2), math::abs(I - J) < 2. Сколько решений имеет цель X = move()?
- # Определение предиката move имеет вид: move() = tuple(I, J):- I = std::fromTo(0, 2), J = std::fromTo(0, 2), math::abs(I - J) = 2. Сколько решений имеет цель X = move()?
- # Определение предиката move имеет вид: move() = tuple(I, J):- I = std::fromTo(0, 2), J = std::fromTo(0, 2), math::abs(I - J) >= 1. Сколько решений имеет цель X = move()?
- # Укажите все точки, которые принадлежат правильному шестиугольнику с центром в точке (30, 30) и стороной 20:
- # Укажите набор точек, которые могут являться вершинами правильного шестиугольника с центром в точке (20, 20) и стороной 20:
- # Укажите точку, которая принадлежат правильному шестиугольнику с центром в точке (40, 40) и стороной 20:
- # Определение предиката neighbor2 имеет вид: neighbor2(tuple(I, J)) = tuple(I, J + std::fromToInStep(-2, 2, 4)). Укажите решение для цели L = [X || X = neighbor2(tuple(2, 2))]:
- # Определение предиката neighbor2 имеет вид: neighbor2(tuple(I, J)) = tuple(I + std::fromToInStep(-2, 2, 4), J). neighbor2(tuple(I, J)) = tuple(I, J + std::fromToInStep(-2, 2, 4)). Сколько решений имеет цель X = neighbor2(tuple(4, 4))?
- # Определение предиката neighbor2 имеет вид: neighbor2(tuple(I, J)) = tuple(I + std::fromToInStep(-2, 2, 4), J). Сколько решений имеет цель X = neighbor2(tuple(3, 3))?
- # Укажите значение переменной X, которое она примет после вызова подцели L = [tuple(2, 3, 10), tuple(3, 2, 1), tuple(1, 4, 6), tuple(2, 3, 5)], tuple(_, _, X) = list::maximum(L).
- # Укажите значение переменной X, которое она примет после вызова подцели: L = [tuple(5, 2, 1), tuple(4, 5, 10), tuple(2, 6, 9), tuple(3, 8, 5)], X = list::maximum(L).
- # Укажите значение переменной X, которое она примет после вызова подцели: L = [tuple(2, 3, 8), tuple(3, 2, 1), tuple(1, 4, 9), tuple(4, 5, 5)], tuple(_, X, _) = list::minimum(L).
- # Определение предиката coord имеет вид: coord() = tuple(I, J):- I = std::fromTo(-1, 1), J = std::between(I, -2*I). Сколько решений имеет цель X = coord()?
- # Определение предиката coord имеет вид: coord() = tuple(I, J):- I = std::fromToInStep(-1, 1, 2), J = std::betweenInStep(I, -I, 2). Сколько решений имеет цель X = coord()?
- # Определение предиката coord имеет вид: coord() = tuple(I, J):- I = std::fromToInStep(-1, 1, 2), J = std::between(2*I, -I). Сколько решений имеет цель X = coord()?
- # Определение предикатов обработки событий onPaint и onSize имеет вид: onPaint(_Source, rct(0, 0, 10, 10), GDI):- !, GDI:clear(color_Red). onPaint(_Source, _Rectangle, GDI):- GDI:clear(color_Blue). onSize(_Source):- invalidate(). Что произойдет при небольшом изменении размеров окна стандартного размера?
- # Определение предикатов обработки событий onPaint и onMouseDown имеет вид: onPaint(_Source, rct(10, 10, 20, 20), GDI):- !, GDI:clear(color_Red). onPaint(_Source, _Rectangle, GDI):- GDI:clear(color_Green). onMouseDown(_Source, _Point, _ShiftControlAlt, _Button):- invalidate(rct(10, 10, 20, 20)). Что произойдет после щелчка мыши?
- # Определение предикатов обработки событий onPaint и onMouseDbl имеет вид: onPaint(_Source, rct(10, 10, 20, 20), GDI):- !, GDI:clear(color_Yellow). onPaint(_Source, _Rectangle, GDI):- GDI:clear(color_Gray). onMouseDbl(_Source, _Point, _ShiftControlAlt, _Button):- invalidate(rct(0, 0, 20, 20)). Что произойдет после двойного щелчка мыши?
- # Укажите все значения переменных Rect и Point, при которых вызов подцели vpi::rectPntInside(Rect, Point) завершится успехом:
- # Укажите все значения переменной Point, при которых вызов подцели vpi::rectPntInside(rct(10, 20, 200, 100), Point) завершится успехом:
- # Укажите все значения переменной Rect, при которых вызов подцели vpi::rectPntInside(Rect, pnt(50, 100)) завершится успехом:
- # Цель L = list::removeConsecutiveDuplicates([3, 3, 3, 2, 1, 1, 2, 2, 3]) имеет решение
- # Цель L = list::removeConsecutiveDuplicates([2, 1, 1, 2, 2]) имеет решение
- # Цель L = list::removeConsecutiveDuplicates([1, 0, 1, 1, 0, 0, 1, 0]) имеет решение
- # Манхэттенское расстояние между точками pnt(10, 60) и pnt(40, 20) равно
- # Манхэттенское расстояние между точками pnt(45, 50) и pnt(40, 62) равно
- # Укажите точку, которая находится ближе всего относительно манхэттенского расстояния к точке pnt(20, 30):
- # Редактор меню окна paintMenu открывается с помощью элемента дерева проекта:
- # Редактор панели инструментов окна paintMenu открывается с помощью элемента дерева проекта:
- # Редактор строки состояния окна paintMenu открывается с помощью элемента дерева проекта:
- # Определение предиката onPaint имеет вид: onPaint(_Source, _Rectangle, GDI):- GDI:pictDraw(bgpict, pnt(0, 0), rop_SrcCopy). Как отобразится изображение bgpict?
- # Определение предиката onPaint имеет вид: onPaint(_Source, _Rectangle, GDI):- getClientSize(W, H), vpi::pictGetSize(bgpict, PW, PH, _), GDI:pictDraw(bgpict, rct(0, 0, W, H), rct(0, 0, PW div 2, PH), rop_SrcCopy). Как отобразится изображение bgpict?
- # Определение предиката onPaint имеет вид: onPaint(_Source, _Rectangle, GDI):- getClientSize(W, H), vpi::pictGetSize(bgpict, PW, PH, _), GDI:pictDraw(bgpict, rct(0, 0, W div 2, H), rct(PW div 2, 0, PW, PH), rop_SrcCopy). Как отобразится изображение bgpict?
- # В результате вызова _ = timerSet(500) таймер будет тикать:
- # Сколько тиков в секунду будет делать таймер после вызова _ = timerSet(200)?
- # Как часто будет тикать таймер после вызова _ = timerSet(600)?
- # В результате вызова Graphics:translateTransform(10, 10)
- # В результате вызова последовательности подцелей Graphics:translateTransform(200, 200), Graphics:rotateTransform(90), Graphics:drawRectangleI(Pen, 0, 0, 40, 20) отобразится прямоугольник, левый верхний угол которого будет находиться в точке с координатами
- # В результате вызова последовательности подцелей Graphics:translateTransform (20, 10), Graphics:drawRectangleI(Pen, 100, 100, 20, 40) отобразится прямоугольник, левый верхний угол которого будет находиться в точке с координатами
- # Определение обработчика событий выбора пункта меню File -> New главного окна приложения имеет вид: onFileNew(_Source, _MenuTag):- vpiCommonDialogs::note("Hello, World!"), setText("Hello!"). Что произойдет после выбора команды меню File -> New?
- # Определение обработчика событий выбора пункта меню File -> New главного окна приложения имеет вид: onFileNew(_Source, _MenuTag):- vpiCommonDialogs::note("Hello!"), _ = drawForm::display(This), setText("Hello, World!"). Пользователь выбрал команду меню File -> New. Где и когда появится текст "Hello, World!")?
- # Определение обработчика событий выбора пункта меню File -> New главного окна приложения имеет вид: onFileNew(_Source, _MenuTag):- vpiCommonDialogs::note("Hello, World!"), Form = drawForm::display(This), Form:setText("Hello!"). Пользователь выбрал команду меню File -> New, а потом закрыл окно Note. Где будет выведен текст "Hello!")?
- # Какой элемент будет выделен в списке в результате вызова последовательности подцелей listbox_ctl:addList(["Anna", "Bob", "Chris", "David"]), listbox_ctl:selectAt(3, true)?
- # Какой элемент будет выделен в списке в результате вызова последовательности подцелей listbox_ctl:addList([toString(I) || I = std::fromTo(1, 5)]), listbox_ctl:selectAt(1, true)?
- # Какой элемент будет выделен в списке в результате вызова последовательности подцелей listbox_ctl:addList(["2", "4", "6", "8"]), listbox_ctl:selectAt(2, true)?
- # Текст Str появится в окне сообщений Messages в результате вызова подцели
- # Текст Str заменит текст, содержащийся в поле редактирования (Edit Control), в результате вызова подцели
- # Текст Str будет удален из поля редактирования (Edit Control) в результате вызова подцели
- # Какой элемент будет виден изначально в выпадающем списке после вызова подцели listButton_ctl:addList(["Ann", "Bob", "Tom"])?
- # Какой элемент будет виден изначально в выпадающем списке после вызова подцели listButton_ctl:addList(["Alpha", "Beta", "Gamma"]), listButton_ctl:selectAt(0, true)?
- # Какой элемент будет виден изначально в выпадающем списке после вызова подцели listButton_ctl:addList(["1", "3", "5"]), listButton_ctl:selectAt(1, true)?
- # Окно drawForm должно открываться по нажатию кнопки Ok окна familyForm. В определении предиката onOkClick достаточно подставить подцель:
- # Окно drawForm должно открываться при выборе команды главного меню File -> New. В определении предиката обработки события вызова этой команды меню достаточно поставить подцель:
- # Окно drawForm должно открываться по нажатию кнопки Ok окна Note, которое открывается при выборе пункта главного меню File -> New. В определении предиката обработки события вызова этой команды меню достаточно поставить подцели:
- # Делает включенным переключатель radio_ctl вызов подцели:
- # Переключатель radio_ctl делает выключенным вызов подцели:
- # Переключатель radio_ctl делает неактивным вызов подцели:
- # Кнопку del_ctl делает невидимой вызов подцели:
- # Кнопку del_ctl делает видимой вызов подцели:
- # Кнопку del_ctl делает включенной вызов подцели:
- # Текст Str помещает в текстовый редактор (sciLexer) вызов подцели:
- # Свойство "Только для чтения" устанавливает для текстового редактора (sciLexer) вызов подцели:
- # Что произойдет в текстовом редакторе (sciLexer) в результате вызова подцели: sciLexer_ctl:text := "Hello, World!"?
- # Изображение, хранящееся в файле ресурса с идентификатором idb_bmp, загружает вызов следующей подцели:
- # Изображение, хранящееся в bmp-файле, загружает подцель:
- # Размеры изображения можно узнать следующим образом:
- # Предикат create создает таблицу, содержащую 5 строк и 10 столбцов: create():- L1 = [column(toString(J), 30, alignLeft) || J = std::fromTo(1, 10)], L2 = [item(uncheckedConvert(itemId, I), toString(I), -1, [], IL) || I = std::fromTo(1, 5), IL = [toString(K) || K = std::fromTo(2 + I, 10 + I)]], listViewControl_ctl:insertColumnList(1, L1), listViewControl_ctl:insertItemList(L2), listViewControl_ctl:setLVType(lvs_report). В третьей строке и в третьем столбце таблицы находится элемент
- # Предикат create создает таблицу, содержащую 3 строки и 3 столбца: create():- L1 = [column("1", 30, alignLeft), column("2", 30, alignLeft), column("3", 30, alignLeft)], L2 = [item(uncheckedConvert(itemId, I), toString(I), -1, [], IL) || I = std::fromTo(1, 3), IL = [toString(K) || K = std::fromTo(I + 1, I + 2)]], listViewControl_ctl:insertColumnList(1, L1), listViewControl_ctl:insertItemList(L2), listViewControl_ctl:setLVType(lvs_report). Во второй строке и во втором столбце таблицы находится элемент
- # Предикат create создает таблицу, содержащую 4 строки и 4 столбца: create():- L1 = [column(toString(J), 30, alignLeft) || J = std::fromTo(1, 4)], L2 = [item(uncheckedConvert(itemId, 1), "a", -1, [], ["b", "c", "d"]), item(uncheckedConvert(itemId, 2), "e", -1, [], ["f", "g", "h"]), item(uncheckedConvert(itemId, 3), "i", -1, [], ["j", "k", "l"]), item(uncheckedConvert(itemId, 4), "m", -1, [], ["n", "o", "p"]), ], listViewControl_ctl:insertColumnList(1, L1), listViewControl_ctl:insertItemList(L2), listViewControl_ctl:setLVType(lvs_report). Во второй строке и в третьем столбце таблицы находится элемент
- # Определение предиката do имеет вид: do():- listBox_ctl:setMultiSelect(), listBox_ctl:addList([toString(I) || I = std::fromTo(11, 15)]), foreach X = std::fromTo(0, 3) do listBox_ctl:selectAt(X, true) end foreach, listBox_ctl:selectAt(0, false). В результате вызова подцели do() не будут выделены элементы списка:
- # Определение предиката do имеет вид: do():- listBox_ctl:setMultiSelect(), listBox_ctl:addList([toString(I) || I = std::fromToInStep(100, 400, 100)]), foreach X = std::fromTo(0, 2) do listBox_ctl:selectAt(X, true) end foreach, listBox_ctl:selectAt(1, false). В результате вызова подцели do() в списке будут выделены элементы:
- # Определение предиката do имеет вид: do():- listBox_ctl:setMultiSelect(), listBox_ctl:addList(["Ann", "Chris", "Evan", " Grace", "Rita"]), foreach X = std::fromToInStep(0, 4, 2) do listBox_ctl:selectAt(X, true) end foreach, listBox_ctl:selectAt(4, false). В результате вызова подцели do() будут выделены элементы списка:
- # Считать текст из поля редактирования (Edit Control) можно с помощью подцели
- # Текст Str добавится в начало текста, содержащегося в поле редактирования (Edit Control), в результате вызова подцели
- # Текст Str добавится в конец текста, содержащегося в поле редактирования (Edit Control), в результате вызова подцели
- # Укажите все способы, с помощью которых можно считать текст из текстового редактора (sciLexer):
- # Текст Str добавится в качестве первого абзаца к тексту, содержащемуся в текстовом редакторе (sciLexer), в результате вызова подцели
- # Текст Str добавится в качестве последнего абзаца к тексту, содержащемуся в текстовом редакторе (sciLexer), в результате вызова подцели
- # Включен ли переключатель (Radio Button), можно определить с помощью подцели:
- # Состояние включенного переключателя (Radio Button) описывается термом:
- # Состояние выключенного переключателя (Radio Button) описывается термом:
- # Найти все выделенные элементы списка (List Box) можно с помощью подцели:
- # Выделить элемент Item в выпадающем списке (List Button) можно следующим образом:
- # Найти все элементы списка (List Box) можно с помощью подцели:
- # Скопировать текст из одного текстового файла в другой файл можно следующим образом:
- # Считать текст из текстового файла можно следующим образом:
- # Записать текст Text в текстовый файл можно следующим образом:
- # Поместить надпись на кнопку (Push Button) можно с помощью подцели:
- # Найти надпись на кнопке (Push Button) можно с помощью подцели:
- # Добавить восклицательный знак к надписи на кнопке (Push Button) можно с помощью подцели:
- # Узнать, стоит ли флажок (Check Box), можно с помощью подцели:
- # Поставить флажок (Check Box) можно с помощью подцели:
- # Убрать флажок (Check Box) можно с помощью подцели:
- # Найдите решение для цели L = [X || X = std::cIterate(5)]:
- # Найдите решение для цели L = [X+1 || X = std::cIterate(3)]:
- # Сколько элементов содержит список L = [X-1 || X = std::cIterate(10)]?
- # Определение факта-переменной rbtree и предиката create имеют вид: facts rbtree : tree{integer, integer} := emptyUnique(). clauses create():- X = std::fromTo(1, 10), rbtree := insert(rbtree, X mod 2, X). Сколько вершин будет содержать дерево rbtree в результате вызова create()?
- # Определение факта-переменной rbtree и предиката create имеют вид: facts rbtree : tree{integer, integer} := emptyUnique(). clauses create():- X = std::fromTo(1, 5), rbtree := insert(rbtree, X mod 2, X). Какие пары "ключ – значение" будут содержаться в вершинах дерева rbtree в результате вызова create()?
- # Определение факта-переменной rbtree и предиката create имеют вид: facts rbtree : tree{integer, integer} := emptyUnique(). clauses create():- X = std::fromTo(1, 10), rbtree := insert(rbtree, X, X mod 2). Сколько вершин будет содержать дерево rbtree в результате вызова create()?
- # Определение факта-переменной rbtree и предиката create имеют вид: facts rbtree : tree{integer, integer} := emptyUnique(). clauses create():- X = std::fromTo(1, 10), rbtree := insert(rbtree, X mod 3, X). Укажите значение, которое примет переменная X после вызова цели create(), X = tryLookUp(rbtree, 2):
- # Определение факта-переменной rbtree и предиката create имеют вид: facts rbtree : tree{integer, integer} := emptyUnique(). clauses create():- X = std::fromTo(1, 10), rbtree := insert(rbtree, X, X mod 3). Укажите значение, которое примет переменная X после вызова цели create(), X = tryLookUp(rbtree, 2):
- # Определение факта-переменной rbtree и предиката create имеют вид: facts rbtree : tree{integer, integer} := emptyUnique(). clauses create():- X = std::fromTo(1, 10), rbtree := insert(rbtree, X mod 3, X div 3). Укажите значение, которое примет переменная X после вызова цели create(), X = tryLookUp(rbtree, 0):
- # Определение предикатов neighbor и f имеет вид: neighbor(I, J, I, f(J, 3)). neighbor(I, J, f(I, 3), J). neighbor(I, J, f(I, 3), f(J, 3)). f(X, _) = X - 1:- X > 0. f(X, N) = X + 1:- X < N - 1. Сколько решений имеет цель neighbor(0, 1, I, J)?
- # Определение предикатов neighbor и f имеет вид: neighbor(I, J, I, f(J, 3)). neighbor(I, J, f(I, 3), J). f(X, _) = X - 1:- X > 0. f(X, N) = X + 1:- X < N - 1. Укажите все решения для цели neighbor(0, 2, I, J):
- # Определение предикатов neighbor и f имеет вид: neighbor(I, J, f(I, 3), f(J, 3)). f(X, _) = X - 1:- X > 0. f(X, N) = X + 1:- X < N - 1. Сколько решений имеет цель neighbor(1, 0, I, J)?
- # Пусть L = list::decompose([0, 1, 1, 2, -2], {(X) = X}). Сколько элементов содержит список L?
- # Пусть L = list::decompose([0, 0, 0, 1, 1, 2, 2, 3], {(X) = X}). Укажите элемент, принадлежащий списку L:
- # Пусть L = list::decompose([1, 0, 1, 0, 1, 0, 1], {(X) = X}). Укажите элементы, составляющие список L:
- # Пусть L = list::decompose([-2, -1, 0, 1, 2], {(X) = X^2}). Сколько элементов содержит список L?
- # Пусть L = list::decompose([-2, -2, -1, -1, 0, 1, 2, 3, 3], {(X) = math::abs(X)}). Сколько элементов содержит список L?
- # Пусть L1 = list::decompose([0, 1, -1, 0, 1, -1, 0], {(X) = math::abs(X)}), L2 = list::map(L1, {(tuple(I, L)) = tuple(I, list::length(L))}). Укажите элементы, которые составляют список L2