LINUX.ORG.RU

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

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

монада это точка с запятой. всё.. никого матана, никакого бурито!

Ладно, наврал, в модане ещё и значение передается, т.е. это x = foo ; bar x, что тут понимать то? Далее этот «оператор» можно перегрузить, т.е. (псевдокод на си-подобном языке):

; ((Maybe a) value, *(Maybe b)(a) next) {
  if (value->empty == false) {
     return Nothing;
  } else {
     return next(value->value);
  }
}

struct (Maybe_a) {
   int empty,
   a*  value,
} (Maybe a);

При этом хацкель не заставляет сразу пользоваться всеми фичами CPS,Iteratee/Conduit/Pipes,стрелками,использовать FRP, typefamilies, gadt, знать про primitive, c--. Так что дурацкое сравнение.

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

монада это точка с запятой. всё.. никого матана, никакого бурито!

Ладно, наврал, в модане ещё и значение передается, т.е. это x = foo ; bar x, что тут понимать то? Далее этот «оператор» можно перегрузить, т.е. (псевдокод на си-подобном языке):

; ((Maybe a) value, (*Maybe b)(a) next) {
  if (value->empty == false) {
     return Nothing;
  } else {
     return next(value->value);
  }
}

struct (Maybe_a) {
   int empty,
   a*  value,
} (Maybe a);

При этом хацкель не заставляет сразу пользоваться всеми фичами CPS,Iteratee/Conduit/Pipes,стрелками,использовать FRP, typefamilies, gadt, знать про primitive, c--. Так что дурацкое сравнение.

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

монада это точка с запятой. всё.. никого матана, никакого бурито!

Ладно, наврал, в модане ещё и значение передается, т.е. это x = foo ; bar x, что тут понимать то? Далее этот «оператор» можно перегрузить, т.е. (псевдокод на си-подобном языке):

; ((Maybe a) value, (*Maybe b)(a) next) {
  if (value.empty == false) {
     return Nothing;
  } else {
     return next(value.value);
  }
}

struct (Maybe_a) {
   int empty,
   a*  value,
} (Maybe a);

При этом хацкель не заставляет сразу пользоваться всеми фичами CPS,Iteratee/Conduit/Pipes,стрелками,использовать FRP, typefamilies, gadt, знать про primitive, c--. Так что дурацкое сравнение.

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

монада это точка с запятой. всё.. никого матана, никакого бурито!

Ладно, наврал, в модане ещё и значение передается, т.е. это x = foo ; bar x, что тут понимать то? Далее этот «оператор» можно перегрузить, т.е. (псевдокод на си-подобном языке):

; ((Maybe a) value, (*Maybe b)(a) next) {
  if (value.empty nothing == false) {
     return Nothing;
  } else {
     return next(value.value);
  }
}

struct (Maybe_a) {
   int empty,
   a*  value,
} (Maybe a);

При этом хацкель не заставляет сразу пользоваться всеми фичами CPS,Iteratee/Conduit/Pipes,стрелками,использовать FRP, typefamilies, gadt, знать про primitive, c--. Так что дурацкое сравнение.

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

монада это точка с запятой. всё.. никого матана, никакого бурито!

Ладно, наврал, в модане ещё и значение передается, т.е. это x = foo ; bar x, что тут понимать то? Далее этот «оператор» можно перегрузить, т.е. (псевдокод на си-подобном языке):

; ((Maybe a) value, (*Maybe b)(a) next) {
  if (value.empty nothing == false) {
     return Nothing;
  } else {
     return next(value.value);
  }
}

struct (Maybe_a) {
   int empty,
   a*  value,
} (Maybe a);