Фактическая ошибка связана с тем, что функция ожидает аргумент кортежа.Вам нужно будет вызвать функцию с помощью:
let result = stopword (["this";"is";"the"], [])
Редактировать: поскольку исходный вопрос был изменен, приведенный выше ответ больше не действителен;логическая ошибка в реальной функции заключается в том, что в итоге получается один элемент списка, из которого берется хвост, в результате чего получается пустой список.При следующем рекурсивном вызове функция захлебывается при попытке получить заголовок этого пустого списка
Сама по себе функция реализована неправильно, хотя и намного сложнее, чем необходимо.
let isNoStopword (word:string) =
match word with
| "the"|"this" -> false
| _ -> true
let removeStopword (a : string list) =
a |> List.filter(isNoStopword)
let test = removeStopword ["this";"is";"the"]