Я новичок в F #, так что извините, если это выглядит слишком глупо. Я пытаюсь слушать события создания и удаления файлов через FileSystemWatcher
. Теперь я хочу создать наблюдателя для отображения количества изменений на основе файлов, добавленных и удаленных в каталоге. Поэтому всякий раз, когда файл добавляется в счетчик каталогов, увеличивается на единицу и уменьшается при удалении файла. Мой код ниже:Это выражение должно было иметь тип FSI_0024.xxx, но здесь есть тип FSI_0017.xxx
let watcher = new FileSystemWatcher(@".")
watcher.EnableRaisingEvents <- true
let created = watcher.Created
let deleted = watcher.Deleted
type Change =
| Addition of string
| Removal of string
let a = created |> Observable.map (fun eventArgs ->
Addition eventArgs.Name)
let r = deleted |> Observable.map (fun eventArgs ->
Removal eventArgs.Name)
let changes = Observable.merge a r
let collector count state =
match state with
| Addition x -> count + 1
| Removal x -> count - 1
let createdCount =
changes |> Observable.scan (fun count s -> collector count s) 0
Но это дает следующее сообщение об ошибке на Observable.scan
:
This expression was expected to have type
FSI_0024.Change
but here has type
FSI_0017.Change
типов одинаковы, но я не понимаю, это FSI_xxxx части. Что может быть проблемой?
Сбросить сеанс fsi. Есть некоторые старые определения, висящие вокруг, вызывающие проблему. –
@JohnPalmer Спасибо, что сэр за то, что сэкономил мое время. –