Я пытаюсь добавить метод к классу DenseVector, чтобы иметь возможность разностно разделить вектор n раз. Далее, кажется, не работает, как определение типа жалуется, что тип Vector не совместим с типом DenseVector:Проблемы с добавлением расширения к DenseVector type
open System
open System.IO
open Deedle
open MathNet.Numerics
open MathNet.Numerics.LinearAlgebra
open MathNet.Numerics.LinearAlgebra.Double
open MathNet.Numerics.Distributions
[<Extension>]
type DenseVector with
member this.diffVector (v : DenseVector) (n : int) =
let rec run (v : DenseVector) (n : int) =
match n with
| 0 -> v
| _ -> run (v.[ 1 .. v.Count-1 ] - v.[ 0 .. (v.Count-1)-1 ]) (n - 1)
run v n
v.[ 0 .. (v.Count-1)-1 ]
в выше вызывает проблемы. Почему это выводится как Вектор, а не DenseVector - это то, что передается функции? Кроме того, мой способ добавить метод расширения правильно?
Можете ли вы включить в свой реестр, какие пространства имен у вас открыты? – Gustavo
@Gustavo. Мои тесты показывают, что он, вероятно, имеет 'MathNet.Numerics.LinearAlgebra.Double' и ' MathNet.Numerics.LinearAlgebra'. И у него есть пакет расширения FSharp для MathNet. – Ringil
Извините, забыл включить их. Просто сделал редактирование. –