Это в основном та же ошибка, что и до .
Вы оцениваете
appendtocode n (List.hd list)
, которое возвращает значение, которое не функция. Затем вы пытаетесь вызвать его с b-1
в качестве аргумента, но так как это не функция, вы не можете этого сделать.
Я хочу вызвать мою функцию, когда b == 0, а также уменьшить значение b.
Декремент b
для кого? b
является аргументом функции appendtolist
, поэтому, если вы вызываете appendtolist
рекурсивно, вы можете указать новый аргумент для b
, что вы и делаете в случае else
, и это прекрасно работает , Но в случае then
вы не звоните appendtolist
. Вы звоните только appendtocode
, а appendtocode
не имеет третьего аргумента b
. Так что проходить его b-1
просто не имеет смысла.
Я предполагаю, что ваша программа будет работать нормально, если вы удалите b-1
.
PS: эта проблема совершенно не связана с вложенными if
с.