1. C# / Говнокод #19941

    +5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    class Program {
        static void Main(string[] args) {
            AppInstance.Get().DoMain(IOMain);
        }
        static IO<None> IOMain() {
            return
                from _ in IO.Do(() => Console.WriteLine("What is your name?"))
                from name in IO.Do(() => Console.ReadLine())
                let message = "Hi, " + name + "!"
                from r in IO.Do(() => Console.WriteLine(message))
                select r;
        }
    }

    https://habrahabr.ru/post/282940

    Запостил: vleschenko, 05 Мая 2016

    Комментарии (11) RSS

    • Шарп ты мой шарп
      С каждой версией я узнаю тебя все меньше и меньше( Скоро не будет в английском языке такого слова, которое не сгодится тебе за ключевое
      Ответить
      • Какую роль будет играть ключевое слово “fuck”?
        Ответить
      • Это всё насилие пидорасов, которые шарповые генетики приспосабливают для превращения, тащем-та годного языка в непонятное недофункциональное говно.

        Из той же статьи:
        public sealed class IO<T> {
            readonly Func<RealWorld, Tuple<RealWorld, T>> func;
        
            internal IO(Func<RealWorld, Tuple<RealWorld, T>> func) {
                this.func = func;
            }
            internal RealWorld Execute(RealWorld index, out T result) {
                var resultTuple = func(index);
                result = resultTuple.Item2;
                return resultTuple.Item1;
            }
        }
        class RealWorld {
            readonly AppInstance inst;
            readonly int index;
        
            public RealWorld(AppInstance inst, int index) {
                this.inst = inst;
                this.index = index;
            }
            public Tuple<RealWorld, None> Do(Expression<Action> callExpression) {
                return Tuple.Create(Yield(), inst.AssertIO(index, callExpression));
            }
            public Tuple<RealWorld, TResult> Do<TResult>(Expression<Func<TResult>> callExpression) {
                return Tuple.Create(Yield(), inst.AssertIO(index, callExpression));
            }
            public RealWorld Yield() {
                return new RealWorld(inst, index + 1);
            }
        }


        Астронавты, блядь, обожравшиеся скалы.
        Ответить
        • >> public sealed class IO<T> { readonly Func<RealWorld, Tuple<RealWorld, T>> func;
          >> 
          >>     internal IO(Func<RealWorld, Tuple<RealWorld, T>> func) {
          >>         this.func = func;
          >>     }
          >>     internal RealWorld Execute(RealWorld index, out T result) {
          >>         var resultTuple = func(index); result = resultTuple.Item2;
          >>         return resultTuple.Item1;
          >>     }
          >> }


          То чувство, когда IO монада больше похожа на Writer монаду
          Ответить
        • обосрался кто то
          Ответить
    • ахах братки че за мутки че за хуитца творица тут?
      Ответить
      • Говорят, цистерна с чистым функционалом калом прохудилась.
        Ответить
      • тут у кегги в животе такое странное чувство, словно бы IO монада больше похожа на Writer монаду

        понимаешь?
        Ответить

    Добавить комментарий