Często mam funkcję z wieloma parametrami tego samego typu, a czasami używam ich w niewłaściwej kolejności. Jako prosty przykład:F # phantom types in practice
let combinePath (path : string) (fileName : string) = ...
Wydaje mi się, że typy fantomowe byłyby dobrym sposobem na złapanie jakichkolwiek pomyłek. Ale nie rozumiem, jak zastosować przykład w jedynym F# phantom types question.
Jak zaimplementować typy fantomowe w tym przykładzie? Jak nazwać CombinePath? Czy może brakuje prostszego rozwiązania problemu?
ponieważ te są jedna sprawa dalsi, można również nie 'niech combinePath (Path (p)) (Fname (f)) = ...', koniec -result będzie taki sam :) –
Tak. To będzie prostsze. Zaktualizowany post, dziękuję! – Petr
Oznaczałoby to deklarowanie typu dla każdego typu parametru. Sądzę, że myślałem, że może to być trochę jak jednostka miary, string string . Chociaż nadal będzie potrzebował typów dla Path i FileName, więc na końcu jest tak samo ... Odpowiadam na mój własny punkt myślę. –