Более интересно было бы что-нибудь вроде если <=1 вернуть одну запись, а если >2 вернуть две и больше записей - на SQL такое можно сделать, но не совсем удобно
public class IO { private Object v; }как может быть такой класс вообще полезным? Все внутренности являются implementation detail и никак не обнаруживаются пользователями. И вот в некоторых случаях эта private часть настолько концептуальна, что её нельзя никаким геттером вынуть.
А вот в таком виде:
public class IO { private Object v; public void bind(Function f) { ... } }уже полезно, даже если нечего вынимать геттером.
В контексте цитаты вообще можно спросить, что такое send в эрланге вообще. У актора "по ту сторону" от send может быть ничего и нельзя вынуть, можно только отдать. Вот такое вот асинхронное, одностороннее общение. Совсем как bind, который монаде "говорит" "сделай вот это".
А ещё как-то понятнее смотреть на return и <=<, ибо второе перекликается с обычным (.).
Comments 17
Reply
Правда, думать я об этом пока не могу. ;)
Reply
Reply
Я, каюсь, думал посложнее сделать - чтобы список отрезался чем-то вроде cutN, чтобы return x после "cutN n" в конце возвращался не более n раз.
Reply
Если рассматривать такой класс
public class IO {
private Object v;
}как может быть такой класс вообще полезным? Все внутренности являются implementation detail и никак не обнаруживаются пользователями. И вот в некоторых случаях эта private часть настолько концептуальна, что её нельзя никаким геттером вынуть.
А вот в таком виде:
public class IO {
private Object v;
public void bind(Function f) {
...
}
}уже полезно, даже если нечего вынимать геттером.
В контексте цитаты вообще можно спросить, что такое send в эрланге вообще. У актора "по ту сторону" от send может быть ничего и нельзя вынуть, можно только отдать. Вот такое вот асинхронное, одностороннее общение. Совсем как bind, который монаде "говорит" "сделай вот это".
А ещё как-то понятнее смотреть на return и <=<, ибо второе перекликается с обычным (.).
Reply
Reply
Reply
Не помню, откуда я это взял, но там эта штука называлась «оператор евро».
> -- |> in other languages, I presume.
В математике пару раз встречал обозначение «x ⊲ f», возможно, от этого и происходит |> в OCaml/F#.
Reply
Reply
Reply
Reply
Соедините State и List на C#, я думаю, увидите, в чём проблема.
Reply
Leave a comment