Разве вам не нужно указывать аргумент вашей функции для компиляции?
Что-то вроде
let isParentRoot parVal =
match parVal with
| "0" -> "0"
| x -> (fun y -> "something") x
потому что в противном случае последнее совпадение попыталось бы вернуть функцию, которая возвращает строку, а первое - строку. Смешивание обоих не допускается.
Но я думаю, что ваш подход здесь может быть неправильным. Функции возвращают значения (или unit
). Если вы хотите явно что-то изменить, общая функциональная идиома состоит в том, чтобы вернуть новое значение, в котором вы изменили то, что хотели изменить. Программирование с побочными эффектами (которые «устанавливают что-то на« 0 », если foo и делают что-то совсем другое, если не« будет ») в значительной степени не похоже на FP. Но я все еще новичок в F # и только начал два дня назад изучать язык, так что я могу ошибаться.