Seq.cast
Использование кажется, постоянно терпят неудачу, даже как-то просто, как следующее:Проблема с использованием Seq.cast
let xor c = Seq.cast c |> Seq.reduce (^^^)
xor [1;3] // Works, assuming because no cast is necessary
xor ['a';'b'] // Fails
xor [2u] // Fails
Последние два неудачу с затребованной Cast не действует. Что мне не хватает?
Я пытаюсь использовать Seq.cast
, чтобы преобразовать кучу вещей в uint16
, но по какой-то причине он всегда терпит неудачу (даже если я аннотирую его с помощью Seq.cast<uint32>
). Что с этим?
О, я вижу. Seq.cast пытается лишить контейнер, а не его содержимое – gradbot
Не совсем: while 'Seq.cast ['a'; 'b'] 'отличает' char seq' к 'uint32 seq' (успешно, даже), ошибка возникает, когда значения перечисляются: когда считывается свойство' IEnumerable .Current', оно пытается и не удается переведите 'char' в' uint32', когда ему нужно его принудить, с помощью функции 'uint32'. –
Я имел в виду 'IEnumerator', а не' IEnumerable', конечно. Если это не ясно, 'Seq' является просто псевдонимом для' IEnumerable'. –