История изменений
Исправление a--, (текущая версия) :
Я во втором - «оптимизированном» - кейсе твои предыдущие выкладки воспроизвёл.
И как ты их воспроизвел?! Вот так что ли:
= -- 1000+1-1 = 1000, поэтому Just
В цитате точно не мои выкладки и не моя логика.
Мои выкладки, исходя из твоего определения, будут такими:
s(x) = Just(x+1) если x+1 <= 1000, иначе Nothing
p(x) = Just(x-1) если x-1 >= 0, иначе Nothing
Just(x).bind(s).bind(p) = unit(x).bind(s).bind(p) = s(x).bind(p) =
= (Just(x+1) если x+1 <= 1000, иначе Nothing).bind(p) =
= Just(x+1).bind(p) если x+1 <= 1000, иначе Nothing.bind(p) =
= unit(x+1).bind(p) если x+1 <= 1000, иначе Nothing =
= p(x+1) если x+1 <= 1000, иначе Nothing =
= (Just(x+1-1) если x+1-1 >= 0, иначе Nothing) если x+1 <= 1000, иначе Nothing =
= (Just(x) если x >= 0, иначе Nothing) если x <= 999, иначе Nothing =
= Just(x) если 0 <= x <= 999, иначе Nothing
Здесь тебе уже понятно, как можно параллелить выражения вида Just(x).bindᵃ(p).bindᵇ(s).bindᶜ(p).bindᵈ(s). ... ?
Исправление a--, :
Я во втором - «оптимизированном» - кейсе твои предыдущие выкладки воспроизвёл.
И как ты их воспроизвел?! Вот так что ли:
= -- 1000+1-1 = 1000, поэтому Just
В цитате точно не мои выкладки и не моя логика.
Мои выкладки, исходя из твоего определения, будут такими:
s(x) = Just(x+1) если x+1 <= 1000, иначе Nothing
p(x) = Just(x-1) если x-1 >= 0, иначе Nothing
Just(x).bind(s).bind(p) = unit(x).bind(s).bind(p) = s(x).bind(p) =
= (Just(x+1) если x+1 <= 1000, иначе Nothing).bind(p) =
= Just(x+1).bind(p) если x+1 <= 1000, иначе Nothing =
= unit(x+1).bind(p) если x+1 <= 1000, иначе Nothing =
= p(x+1) если x+1 <= 1000, иначе Nothing =
= (Just(x+1-1) если x+1-1 >= 0, иначе Nothing) если x+1 <= 1000, иначе Nothing =
= (Just(x) если x >= 0, иначе Nothing) если x <= 999, иначе Nothing =
= Just(x) если 0 <= x <= 999, иначе Nothing
Здесь тебе уже понятно, как можно параллелить выражения вида Just(x).bindᵃ(p).bindᵇ(s).bindᶜ(p).bindᵈ(s). ... ?
Исправление a--, :
Я во втором - «оптимизированном» - кейсе твои предыдущие выкладки воспроизвёл.
И как ты их воспроизвел?! Вот так что ли:
= -- 1000+1-1 = 1000, поэтому Just
В цитате точно не мои выкладки и не моя логика.
Мои выкладки, исходя из твоего определения, будут такими:
s(x) = Just(x+1) если x+1 <= 1000, иначе Nothing
p(x) = Just(x-1) если x-1 >= 0, иначе Nothing
Just(x).bind(s).bind(p) = unit(x).bind(s).bind(p) = s(x).bind(p) =
= (Just(x+1) если x+1 <= 1000, иначе Nothing).bind(p) =
= Just(x+1).bind(p) если x+1 <= 1000, иначе Nothing =
= unit(x+1).bind(p) если x+1 <= 1000, иначе Nothing =
= p(x+1) если x+1 <= 1000, иначе Nothing =
= (Just(x+1-1) если x+1-1 >= 0, иначе Nothing) если x+1 <= 1000, иначе Nothing =
= (Just(x) если x >= 0, иначе Nothing) если x <= 999, иначе Nothing =
= Just(x) если 0 <= x <= 999, иначе Nothing
Здесь тебе уже понятно, как можно параллелить?
Исправление a--, :
Я во втором - «оптимизированном» - кейсе твои предыдущие выкладки воспроизвёл.
И как ты их воспроизвел?! Вот так что ли:
= -- 1000+1-1 = 1000, поэтому Just
В цитате точно не мои выкладки и не моя логика.
Мои выкладки, исходя из твоего определения, будут такими:
s(x) = Just(x+1) если x+1 <= 1000, иначе Nothing
p(x) = Just(x-1) если x-1 >= 0, иначе Nothing
Just(x).bind(s).bind(p) = unit(x).bind(s).bind(p) = s(x).bind(p) =
= (Just(x+1) если x+1 <= 1000, иначе Nothing).bind(p) =
= Just(x+1).bind(p) если x+1 <= 1000, иначе Nothing =
= unit(x+1).bind(p) если x+1 <= 1000, иначе Nothing =
= (Just(x+1-1) если x+1-1 >= 0, иначе Nothing) если x+1 <= 1000, иначе Nothing =
= (Just(x) если x >= 0, иначе Nothing) если x <= 999, иначе Nothing =
= Just(x) если 0 <= x <= 999, иначе Nothing
Здесь тебе уже понятно, как можно параллелить?
Исправление a--, :
Я во втором - «оптимизированном» - кейсе твои предыдущие выкладки воспроизвёл.
И как ты их воспроизвел?! Вот так что ли:
= -- 1000+1-1 = 1000, поэтому Just
В цитате точно не мои выкладки и не моя логика.
Мои выкладки, исходя из твоего определения, будут такими:
s(x) = Just(x+1) если x+1 <= 1000, иначе Nothing
p(x) = Just(x-1) если x-1 >= 0, иначе Nothing
Just(x).bind(s).bind(p) = unit(x).bind(s).bind(p) = s(x).bind(p) =
= (Just(x+1) если x+1 <= 1000, иначе Nothing).bind(p) =
= Just(x+1).bind(p) если x+1 <= 1000, иначе Nothing =
= unit(x+1).bind(p) если x+1 <= 1000, иначе Nothing =
= (Just(x+1-1) если x+1-1 >= 0, иначе Nothing) если x+1 <= 1000, иначе Nothing =
= (Just(x) если x >= 0, иначе Nothing) если x <= 999, иначе Nothing =
= Just(x) если 0 <= x <= 999, иначе Nothing
Исправление a--, :
Я во втором - «оптимизированном» - кейсе твои предыдущие выкладки воспроизвёл.
И как ты их воспроизвел?! Вот так что ли:
= -- 1000+1-1 = 1000, поэтому Just
В цитате точно не мои выкладки и не моя логика.
Мои выкладки, исходя из твоего определения, будут такими:
s(x) = Just(x+1) если x+1 <= 1000, иначе Nothing
p(x) = Just(x-1) если x-1 >= 0, иначе Nothing
Just(x).bind(s).bind(p) = unit(x).bind(s).bind(p) = s(x).bind(p) =
= (Just(x+1) если x+1 <= 1000, иначе Nothing).bind(p) =
= Just(x+1).bind(p) если x+1 <= 1000, иначе Nothing =
= unit(x+1).bind(p) если x+1 <= 1000, иначе Nothing =
= (Just(x+1-1) если x+1-1 >= 0, иначе Nothing) если x+1 <= 1000, иначе Nothing =
= (Just(x) если x >= 0, иначе Nothing) если x <= 999, иначе Nothing =
= Just(x) если 0<= x <= 999, иначе Nothing
Исходная версия a--, :
Я во втором - «оптимизированном» - кейсе твои предыдущие выкладки воспроизвёл.
И как ты их воспроизвел?! Вот так что ли:
= — 1000+1-1 = 1000, поэтому Just
Если так, то это точно не мои выкладки.
Мои выкладки, исходя из твоего определения, будут такими:
s(x) = Just(x+1) если x+1 <= 1000, иначе Nothing
p(x) = Just(x-1) если x-1 >= 0, иначе Nothing
Just(x).bind(s).bind(p) = unit(x).bind(s).bind(p) = s(x).bind(p) =
= (Just(x+1) если x+1 <= 1000, иначе Nothing).bind(p) =
= Just(x+1).bind(p) если x+1 <= 1000, иначе Nothing =
= unit(x+1).bind(p) если x+1 <= 1000, иначе Nothing =
= (Just(x+1-1) если x+1-1 >= 0, иначе Nothing) если x+1 <= 1000, иначе Nothing =
= (Just(x) если x >= 0, иначе Nothing) если x <= 999, иначе Nothing =
= Just(x) если 0<= x <= 999, иначе Nothing