Форум программистов, компьютерный форум, киберфорум
Наши страницы
Prolog
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Rabbit8
1 / 1 / 0
Регистрация: 22.05.2019
Сообщений: 11
1

Реализовать правило map_floor для ассоциативного массива

24.05.2019, 23:53. Просмотров 994. Ответов 3
Метки нет (Все метки)

Ассоциативный массив на упорядоченном списке пар ключ-значение.
Добавьте правило map_floorKey(Map, Key, FloorKey), возвращающее максимальный ключ, меньший либо равный заданному.
map_get(ListMap, Key, Value), проверяющее, что дерево содержит заданную пару ключ-значение.
map_put(ListMap, Key, Value, Result), добавляющее пару ключ-значение в дерево, или заменяющее текущее значение для ключа;
map_remove(ListMap, Key, Result), удаляющее отображение для ключа.

Prolog
1
2
3
4
5
6
7
8
9
10
11
map_get([(Key, Value) | _], Key, Value).
map_get([(Key1, _) | T], Key, Value) :- Key > Key1, map_get(T, Key, Value).
 
map_remove([(Key, _) | T], Key, T) :- !.
map_remove([(Key1, Value1) | T], Key, [(Key1, Value1) | T1]) :- Key > Key1, map_remove(T, Key, T1), !.
map_remove(M, _, M).
 
map_put([], Key, Value, [(Key, Value)]) :- !.
map_put([(Key, _) | T], Key, Value, [(Key, Value) | T]) :- !.
map_put([(Key1, Value1) | T], Key, Value, [(Key1, Value1) | T1]) :- Key > Key1, map_put(T, Key, Value, T1), !.
map_put(T, Key, Value, [(Key, Value) | T]).
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2019, 23:53
Ответы с готовыми решениями:

Как реализовать код без применения ассоциативного массива (map)?
Имеется такой код. Как можно его изменить, не использую массив map? #include <iostream> #include...

Какой аналог в C# для ассоциативного массива из js?
Я новичок, изучаю шарп второй день (не пинайте сильно), мне нужен ассоциативный массив типу объекта...

Функция implode для ассоциативного массива
Есть ли функция implode,только для ассоциативного массива,если нет,то как сделать аналог?

Вычислить среднее и сумму для каждого отдельного имени ассоциативного массива
Доброго времени суток! Хочу разобраться с примером из книги Страуструпа. Задание звучит следующим...

Реализовать модель ассоциативного кеша
Передо мной стоит задача, реализовать модель ассоциативного кеша, я решил использовать очередь с...

3
Black Fregat
2992 / 1606 / 456
Регистрация: 31.05.2009
Сообщений: 5,729
25.05.2019, 00:23 2
map_floorKey(Map, Key, FloorKey),
Цитата Сообщение от Rabbit8 Посмотреть сообщение
возвращающее максимальный ключ, меньший либо равный заданному.
Что должно вернуть
Prolog
1
map_floorKey([(1, a), (2, b)], 0, FloorKey).
?
Когда все ключи больше заданного?
1
Rabbit8
1 / 1 / 0
Регистрация: 22.05.2019
Сообщений: 11
25.05.2019, 13:30  [ТС] 3
Когда все ключи больше заданного, ничего не должно возвращаться. Ответ должен быть false.

Добавлено через 1 час 25 минут
Цитата Сообщение от Black Fregat Посмотреть сообщение
Когда все ключи больше заданного?
false
0
Black Fregat
2992 / 1606 / 456
Регистрация: 31.05.2009
Сообщений: 5,729
25.05.2019, 19:15 4
Лучший ответ Сообщение было отмечено Rabbit8 как решение

Решение

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
map_floorKey([(Current, _)  | T], Key, FloorKey) :- 
    Key >= Current, 
    map_floorKeyWork(T, Key, Current, FloorKey).
 
map_floorKeyWork([], _, FloorKey, FloorKey).
map_floorKeyWork([(Next, _)  | _], Key, FloorKey, FloorKey) :- 
    Next > Key, !.
map_floorKeyWork([(Next, _)  | T], Key, Current, FloorKey) :- 
    Next > Current, !,
    map_floorKeyWork(T, Key, Next, FloorKey).
map_floorKeyWork([_ | T], Key, Current, FloorKey) :- 
    map_floorKeyWork(T, Key, Current, FloorKey).
1
25.05.2019, 19:15
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2019, 19:15

Получение ассоциативного массива
Немогу получить ассоциативный массивиз запроса $select = mysqli_query($links, $qwery); ...

Размерность ассоциативного массива
Знаю вопрос глупый, но ранее не приходилось работать с этим типом данных. Как узнать размерность...

Копирование ассоциативного массива
Здравствуйте :) прошу помощи в освоении данного материала. Появилась необходимость копировать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru