Этот код F # не работает - PullRequest
       15

Этот код F # не работает

0 голосов
/ 15 декабря 2009

Это не работает ... Я получаю сообщение об ошибке FS0001: тип 'string' не совместим с типом 'seq' для последней строки. Почему?

let rec Parse (charlist) =
   match charlist with
   | head :: tail -> printf "%s " head
                     Parse tail
   | [] -> None

Parse (Seq.toList "this is a sentence.") |> ignore

1 Ответ

2 голосов
/ 15 декабря 2009

Проблема в том, что printf "%s " head означает, что head должно быть string, но вы действительно хотите, чтобы оно было char, поэтому вы увидите, что Parse имеет предполагаемый тип string list -> 'a option. Следовательно, F # ожидает, что Seq.toList будет применено к string seq, а не к string.

Простое исправление - изменить строку, выполняющую печать, на printf "%c " head.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...