> (>>);;
val it : (('a -> 'b) -> ('b -> 'c) -> 'a -> 'c)то есть
(f >> g) x на самом деле g(f(x)) и> (<<);;
val it : (('a -> 'b) -> ('c -> 'a) -> 'c -> 'b)что преобразует
(f << g) x в f(g(x))Вроде всё просто и понятно. Пишем код.
let sorted = Seq.forall (fun (a,b) -> a <= b) << Seq.pairwiseНе катит, код сообщения такой.
Value restriction. The value 'sorted' has been inferred to have generic type val sorted : ('_a -> bool) when '_a :> seq<'_b> and '_b : comparison Either make the arguments to 'sorted' explicit or, if you do not intend for it to be generic, add a type annotation.
Зато всё превосходно работает вот так:
let sorted xs= Seq.forall (fun (a,b) -> a <= b) << Seq.pairwise <| xsДанный факт меня крайне расстроил. Я не знаю как записать выражение в бесточечном стиле. Надеюсь что всё-таки я верблюд и чего-то не понимаю.

Комментариев нет:
Отправить комментарий