LINUX.ORG.RU

История изменений

Исправление a--, (текущая версия) :

В любой монаде в Haskell для оператора <=< соблюдается ассоциативность. Всё. Точка.

Спасибо, поржал.

Ладно, смотри какой код я хочу увидеть от тебя (но на хаскеле):

auto xx = { ... };
auto yy = { ... };
auto zz = { ... };

for( auto x: xx ) for( auto y: yy ) for( auto z: zz ) 
{
  if( (x+y)+z != x+(y+z) )
  {
    std::cout << "ассоциативность нарушается при " << x << " " << y << " " << z << "\n";
    exit(); // вовсе не обязательно выходить, можно выставить флаг
  }
}
std::cout << "ассоциативность для набора проверена\n";

Этот код должен давать твое понимание «ассоциативность монадического связывания», но «не ассоциативность операции с типом внутри».

Либо предложи свой аналог подобного кода. Вовсе не обязательно выходить, можно выставить флаг. Можно запускать 2 инстанса программы в одинаковой внешней среде (причем запускать руками, а не из хаскеля). Или еще как-то.

Полиморфность по монадам не обязательно, главное чтобы было можно присобачить че-нить типа IO, State и в этом духе, а так же настоящие монады, меняя исходник в одном месте (а не прыгая по всему тексту).

Помощь зала при написании этого кода весьма приветствуется :-)

Исправление a--, :

В любой монаде в Haskell для оператора <=< соблюдается ассоциативность. Всё. Точка.

Спасибо, поржал.

Ладно, смотри какой код я хочу увидеть от тебя (но на хаскеле):

auto xx = { ... };
auto yy = { ... };
auto zz = { ... };

for( auto x: xx ) for( auto y: yy ) for( auto z: zz ) 
{
  if( (x+y)+z != x+(y+z) )
  {
    std::cout << "ассоциативность нарушается при " << x << " " << y << " " << z << "\n";
    exit(); // вовсе не обязательно выходить, можно выставить флаг
  }
}
std::cout << "ассоциативность для набора проверена\n";

Этот код должен давать твое понимание «ассоциативность монадического связывания», но «не ассоциативность операции с типом внутри».

Либо предложи свой аналог подобного кода. Вовсе не обязательно выходить, можно выставить флаг. Можно запускать 2 инстанса программы в одинаковой внешней среде. Или еще как-то.

Полиморфность по монадам не обязательно, главное чтобы было можно присобачить че-нить типа IO, State и в этом духе, а так же настоящие монады, меняя исходник в одном месте (а не прыгая по всему тексту).

Помощь зала при написании этого кода весьма приветствуется :-)

Исправление a--, :

В любой монаде в Haskell для оператора <=< соблюдается ассоциативность. Всё. Точка.

Спасибо, поржал.

Ладно, смотри какой код я хочу увидеть от тебя (но на хаскеле):

auto xx = { ... };
auto yy = { ... };
auto zz = { ... };

for( auto x: xx ) for( auto y: yy ) for( auto z: zz ) 
{
  if( (x+y)+z != x+(y+z) )
  {
    std::cout << "ассоциативность нарушается при " << x << " " << y << " " << z << "\n";
    exit(); // вовсе не обязательно выходить, можно выставить флаг
  }
}
std::cout << "ассоциативность для набора проверена\n";

Этот код должен давать твое понимание «ассоциативность монадического связывания», но «не ассоциативность операции с типом внутри».

Либо предложи свой аналог подобного кода. Вовсе не обязательно выходить, можно выставить флаг. Можно запускать 2 инстанса программы в одинаковой внешней среде. Или еще как-то.

Полиморфность по монадам не обязательно, главное чтобы было можно присобачить че-нить типа IO, State и в этом духе, а так же настоящие монады, меняя исходник в одном месте (а не прыгая по всему тексту).

Исправление a--, :

В любой монаде в Haskell для оператора <=< соблюдается ассоциативность. Всё. Точка.

Спасибо, поржал.

Ладно, смотри какой код я хочу увидеть от тебя (но на хаскеле):

auto xx = { ... };
auto yy = { ... };
auto zz = { ... };

for( auto x: xx ) for( auto y: yy ) for( auto z: zz ) 
{
  if( (x+y)+z != x+(y+z) )
  {
    std::cout << "ассоциативность нарушается при " << x << " " << y << " " << z << "\n";
    exit(); // вовсе не обязательно выходить, можно выставить флаг
  }
}
std::cout << "ассоциативность для набора проверена\n";

Этот код должен давать твое понимание «ассоциативность монадического связывания», но «не ассоциативность операции с типом внутри».

Либо предложи свой аналог подобного кода. Вовсе не обязательно выходить, можно выставить флаг. Можно запускать 2 инстанса программы в одинаковой внешней среде. Или еще как-то.

Полиморфность по монадам не обязательно, главное чтобы было можно присобачить че-нить типа IO, State и в этом духе.

Исправление a--, :

В любой монаде в Haskell для оператора <=< соблюдается ассоциативность. Всё. Точка.

Спасибо, поржал.

Ладно, смотри какой код я хочу увидеть от тебя (но на хаскеле):

auto xx = { ... };
auto yy = { ... };
auto zz = { ... };

for( auto x: xx ) for( auto y: yy ) for( auto z: zz ) 
{
  if( (x+y)+z != x+(y+z) )
  {
    std::cout << "ассоциативность нарушается при " << x << " " << y << " " << z << "\n";
    exit(); // вовсе не обязательно выходить, можно выставить флаг
  }
}
std::cout << "ассоциативность для набора проверена\n";

Этот код должен давать твое понимание «ассоциативность монадического связывания», но «не ассоциативность операции с типом внутри».

Либо предложи свой аналог подобного кода. Вовсе не обязательно выходить, можно выставить флаг. Можно запускать 2 инстанса программы в одинаковой внешней среде. Или еще как-то.

Исправление a--, :

В любой монаде в Haskell для оператора <=< соблюдается ассоциативность. Всё. Точка.

Спасибо, поржал.

Ладно, смотри какой код я хочу увидеть от тебя (но на хаскеле):

auto xx = { ... };
auto yy = { ... };
auto zz = { ... };

for( auto x: xx ) for( auto y: yy ) for( auto z: zz ) 
{
  if( (x+y)+z != x+(y+z) )
  {
    std::cout << "ассоциативность нарушается при " << x << " " << y << " " << z << "\n";
    exit(); // вовсе не обязательно выходить, можно выставить флаг
  }
}
std::cout << "ассоциативность для набора проверена\n";

Этот код должен давать твое понимание «ассоциативность монадического связывания», но «не ассоциативность операции с типом внутри».

Либо предложи свой аналог подобного кода. Вовсе не обязательно выходить, можно выставить флаг. Можно запускать 2 инстанса программы. Или еще как-то.

Исправление a--, :

В любой монаде в Haskell для оператора <=< соблюдается ассоциативность. Всё. Точка.

Спасибо, поржал.

Ладно, смотри какой код я хочу увидеть от тебя (но на хаскеле):

auto xx = { ... };
auto yy = { ... };
auto zz = { ... };

for( auto x: xx ) for( auto y: yy ) for( auto z: zz ) 
{
  if( (x+y)+z != x+(y+z) )
  {
    std::cout << "ассоциативность нарушается при " << x << " " << y << " " << z << "\n";
    exit(); // вовсе не обязательно выходить, можно выставить флаг
  }
}
std::cout << "ассоциативность для набора проверена\n";

Этот код должен давать твое понимание «ассоциативность монадического связывания», но «не ассоциативность операции с типом внутри».

Либо предложи свой аналог подобного кода. Вовсе не обязательно выходить, можно выставить флаг. Можно запускать 2 инстанса программы. Или еще как.

Исправление a--, :

В любой монаде в Haskell для оператора <=< соблюдается ассоциативность. Всё. Точка.

Спасибо, поржал.

Ладно, смотри какой код я хочу увидеть от тебя (но на хаскеле):

auto xx = { ... };
auto yy = { ... };
auto zz = { ... };

for( auto x: xx ) for( auto y: yy ) for( auto z: zz ) 
{
  if( (x+y)+z != x+(y+z) )
  {
    std::cout << "ассоциативность нарушается при " << x << " " << y << " " << z << "\n";
    exit(); // вовсе не обязательно выходить, можно выставить флаг
  }
}
std::cout << "ассоциативность для набора проверена\n";

Этот код должен давать твое понимание «ассоциативность монадического связывания», но «не ассоциативность операции с типом внутри».

Либо предложи свой аналог подобного кода.

Исправление a--, :

В любой монаде в Haskell для оператора <=< соблюдается ассоциативность. Всё. Точка.

Спасибо, поржал.

Ладно, смотри какой код я хочу увидеть от тебя (но на хаскеле):

auto xx = { ... };
auto yy = { ... };
auto zz = { ... };

for( auto x: xx ) for( auto y: yy ) for( auto z: zz ) 
{
  if( (x+y)+z != x+(y+z) )
  {
    std::cout << "ассоциативность нарушается при " << x << " " << y << " " << z << "\n";
    exit();
  }
}
std::cout << "ассоциативность для набора проверена\n";

Этот код должен давать твое понимание «ассоциативность монадического связывания», но «не ассоциативность операции с типом внутри».

Либо предложи свой аналог подобного кода.

Исправление a--, :

В любой монаде в Haskell для оператора <=< соблюдается ассоциативность. Всё. Точка.

Спасибо, поржал.

Ладно, смотри какой код я хочу увидеть от тебя (но на хаскеле):

auto xx = { ... };
auto yy = { ... };
auto zz = { ... };

for( auto x: xx ) for( auto y: yy ) for( auto z: zz ) 
{
  if( (x+y)+z != x+(y+z) )
    std::cout << "ассоциативность нарушается при " << x << " " << y << " " << z << "\n";
  exit();
}
std::cout << "ассоциативность для набора проверена\n";

Этот код должен давать твое понимание «ассоциативность монадического связывания», но «не ассоциативность операции с типом внутри».

Либо предложи свой аналог подобного кода.

Исправление a--, :

В любой монаде в Haskell для оператора <=< соблюдается ассоциативность. Всё. Точка.

Спасибо, поржал.

Ладно, смотри какой код я хочу увидеть от тебя (но на хаскеле):

auto xx = { ... };
auto yy = { ... };
auto zz = { ... };

for( auto x: xx ) for( auto y: yy ) for( auto z: zz ) 
{
  if( (x+y)+z != x+(y+z) )
    std::cout << "ассоциативность нарушается при " << x << " " << y << " " << z << "\n";
  exit();
}
std::cout << "ассоциативность для набора проверена\n";

Этот код должен давать твое понимание «ассоциативность монадического связывания», но «не ассоциативность операции с типом внутри».

Исходная версия a--, :

В любой монаде в Haskell для оператора <=< соблюдается ассоциативность. Всё. Точка.

Спасибо, поржал.

Ладно, смотри какой код я хочу увидеть от тебя (но на хаскеле):

auto xx = { ... };
auto yy = { ... };
auto zz = { ... };

for( auto x: xx ) for( auto y: yy ) for( auto z: zz ) 
{
  if( (x+y)+z != x+(y+z) )
    std::cout << "ассоциативность нарушается при " << x << " " << y << " " << z << "\n";
  exit();
}
std::cout << "ассоциативность для набора проверена\n";