Ответ в теме: Замена звездочек в строке

      Комментарии к записи Ответ в теме: Замена звездочек в строке отключены
#3328

Третье правило работает если не сработали первые два. Первые два правила – условия выхода из рекурсии, вы выйдете по первому если в строке вообще нет звездочек, а по второму – если есть хоть одна звездочка, после которой есть символ. Если единственная звездочка является последним элементом списка, то вы войдете во второе правило выполните отсечение, но не сможете удалить следующий за ней символ – функция вернет fail.

Третье правило срабатывает если в строке есть символы и первый символ не является звездочкой. Например "1+2*3-4". Это правило служит для перебора символов строки, т.е. для нашего примера оно сначала удалить из строки 1, затем + и так далее. Затем, в один момент первым символом строки окажется звездочка и выполнение не дойдет до третьего правила, оно остановится на втором.