Mam 19 ciągów, które muszą być zatwierdzone na różne typy. Po pomyślnym sprawdzeniu poprawności chciałbym utworzyć instancję klasy reprezentującej wiersz arkusza kalkulacyjnego (gdzie kolumny nie mają tego samego typu).Scalaz: w jaki sposób mogę zebrać awarie lub zastosować funkcję walidacji z różnymi typami?
Jeśli jeden lub więcej ciągów nie zostanie sprawdzonych, chciałbym, aby błędy zostały zgromadzone w NonEmptyList.
Jeśli było 12 lub mniej przedmiotów, mógłbym użyć | @ | lub zastosuj12. Jeśli używam wyrażenia, to nie działa szybko i nie dochodzi do akumulacji.
Mogę sekwencjonować niepowodzenia, gdy wyrażenie for nie działa, ale to oznacza, że robię pętlę dwa razy. Czy istnieje sposób użycia skalazu, aby wyciągnąć każdy sukces sprawdzania poprawności do zmiennej (jak by się stało, gdybym użył wyrażenia do utworzenia instancji klasy) w tym samym czasie, co gromadzenie wszystkich błędów?
To trochę przylegające, ale można [używać '<*>' (lub 'ap') bezpośrednio] (http://stackoverflow.com/a/11502894/334519), które będą gromadzić błędy i nie mają arbitralne ograniczenie liczby przypadków, w których można je zastosować. –
Nie można po prostu "odwzorować" listy łańcuchów na 'Validation', a następnie' partition' wynikową listę przez 'isFailure'. – cmbaxter