Мне было дано задание написать функцию поиска для этого типа данных хэш-таблицы в SML;Функция поиска таблицы Hash в SML
datatype 'a ht = table of (int * ('a list)) list;
, который возвращает нуль, если таблица пуста и/или ключ не существует в таблице. функция должна быть эта
val lookup = fn : int -> 'a ht -> 'a list
, но я не знаю, как смотреть в каждом ведре хэш-таблицу или отобразить значение ведре ключа. Я был бы признателен за помощь в том, какой алгоритм использовать.
например, функция должна работать следующим образом;
-lookup 3 (table [(1, [2,3]), (2, [3,4,5]), (3, [4])]);
val it = [4] : int list
-lookup 4 (table [(1, [2,3]), (2, [3,4,5]), (3, [4])]);
val it = [] : int list
Я попытался использовать функцию поиска, чтобы упростить ее; забава найти ключ ноль = ложь | find key (x :: rest) = if key = x, тогда true else find key (rest); , но, по-видимому, это для списка и не принимает хэш-таблицу. Я ищу способ применить это к хеш-таблице. , а затем как-то распечатать значение ключа, если оно существует. – misrat
сначала напишите функцию, которая находит int в списке int – Gergely