Я искал какой-то путеводитель "ML для начинающих" - google привел меня к некоторым неясным спискам рассылки или текстам по-моему. До сих пор.
Проблема в том, что до сих пор у меня нет опыта функционального программирования, и обертывание вокруг концепций оказалось намного сложнее, чем ожидалось. Например, задача, которую я пытаюсь сделать сейчас (да, университет:)), выполняет сопоставление между двумя списками (a, b) и (c, d), так что результатом является список (a, d ) из пар, где b = c.
То, что я обычно делал, это:
result = []
for each x in list1 do
for each y in list2 do
if x.b == y.c result.add (x.a, y.d)
end
end
Но я даже не могу начать с реализации чего-то подобного в SML. Например, я знаю, что мог перебирать списки с вложенными map f list
. Тем не менее, среда выполнения (SML/NJ) будет принимать это значение только для функций, которые принимают только элемент списка в качестве параметра. Но как мне узнать, какие элементы вернуться, если я могу работать только с одним из двух списков?
Я отчаянно нуждаюсь в ресурсе, который переходил бы на подобные вещи, желательно с большими дружескими буквами и множеством примеров кода:/