Редактировать: Я пытался сделать этот ответ более полезным, сохраняя при этом замечание, что это, вероятно, наиболее часто задаваемый вопрос SML в StackOverflow. Полный список случаев, когда этот вопрос задавался: 1-й , 2-й , 3-й , 4-й , 5-й, 6-й , 7-й , 8-й , 9-й , 10-й , 11-й , 12 , 13 , 14 , 15 и 16 * (не считая этого сообщения).
Вместо того, чтобы ответить на этот вопрос снова, кураторская версия их здесь:
- 1-й , 2-й , 6-й , 12 борьба с рекурсией и бесконечной рекурсией. Некоторые попытки включают использование функции
null
, а другие - сопоставление с образцом. Я бы go с рекомендацией использовать сопоставление с образцом. - 3-й , 4-й , 5-й , 7-й , 13th , 14th обеспечивают много понимания общей структуры этой функции. Вы, вероятно, узнаете гораздо больше, чем просили, просто прочитав эти ответы, и, поскольку они охватывают множество элементарных тем в контексте функции, с которой вы активно работаете, это может быть очень полезным.
- 10th касается использования изменяемой ссылки, поэтому держитесь подальше от этой ссылки, если только вы не собираетесь совершить ту же ошибку!
- 11th на самом деле не спросите что-нибудь, но автор говорит, что у них есть это упражнение, а затем как бы останавливается. Здесь есть урок, и я не собираюсь его выяснять.
- 8-й , 9-й , 15-й и 16-й , по-видимому, устраняет синтаксические ошибки.
Вопросы, задаваемые по этому вопросу после этого ответа: 17-й (отсутствует else
).