БЕГЕМОТИКОВ МОЖНО! Войти !bnw Сегодня Клубы

Хочу анафорический if, который бы делал коньюнкция между операндами и возвращал первый сфейлившийся, плюс который бы анафорично захватывал все значения из операндов

Вот, например:

bool result =
  a_if_and<boost::variant<T>,  boost::none> (
    {msg.getString(v[1]), msg.getString(v[2]), msg.getString(v[3]), msg.getString(v[4])},

  // at least one operand == boost::none
  [&](unisgned int first_null, const std::tuple<boost::variant<T>, boost::variant<T>, ...> &evalValues) { 
    std::cerr << "value " << first_null "is bad" << std::endl;
    return false;
  },

  // otherwise                                                  
  [&](const std::tuple<boost::variant<T>, boost::variant<T>, ...> &evalValues) {
    std::cout << "value 0 =" << evalValues.get(0).get<T> << std::endl;
    std::cout << "value 1 =" << evalValues.get(1).get<T> << std::endl;
    // ...
    return true;
  });

То есть, a_if_end eval-ит аргументы и каждый на неравенство boost::none.
И в зависимости от этого дергает мою лямбдочку.
Что есть чо похожее? Или я слишком охуел?

#LUCOP3 / @ninesigns / 3112 дней назад

Количество боилерплейта поражает воображение, спасибо.
#LUCOP3/3ZR / @l29ah / 3112 дней назад

@l29ah > C++
бля сорь, это не лисп чтобы без бойлерплейта.

#LUCOP3/CTM / @ninesigns --> #LUCOP3/3ZR / 3112 дней назад

@l29ah олсо, я специально в своих фантазиях не прятал никакой синтаксис за макросами, чтобы пример был максимально понятен.

#LUCOP3/QIV / @ninesigns --> #LUCOP3/3ZR / 3112 дней назад
> msg.getString(v[1]), msg.getString(v[2]), msg.getString(v[3]), msg.getString(v[4]) и поскакал > есть чо похожее рекомендую while и неанонимные (нечего скрывать) функции чтобы код можно было не только писать но и читать
#LUCOP3/MF6 / @mugiseyebrows / 3112 дней назад

@mugiseyebrows > msg.getString(v[4])

вызывать функцию больше одного раза
для функции не доказано что она без сайдэффектов

da ty ohuel

рекомендую while и неанонимные (нечего скрывать) функции

похуй, детали.

#LUCOP3/PLZ / @ninesigns --> #LUCOP3/MF6 / 3112 дней назад
@mugiseyebrows Это же мамин функциональщик, он хочет чтобы на плюсах можно было писать как на хаскеле // рэкете. Там это можно не только писать, но и читать (когда писатель не наркоман).
#LUCOP3/7AF / @l29ah --> #LUCOP3/MF6 / 3112 дней назад
>Хочу анафорический if мозги себе новые захоти
#LUCOP3/QIP / @anonymous / 3112 дней назад

@anonymous сорь, не трансгуманист (пока что)

#LUCOP3/TVL / @ninesigns --> #LUCOP3/QIP / 3112 дней назад

@l29ah а чо на хаскеле (не темлейт хаскеле) так можно?

#LUCOP3/V98 / @ninesigns --> #LUCOP3/7AF / 3112 дней назад
@ninesigns Как? seq? Алсо что такое "анафорично"?
#LUCOP3/93Y / @l29ah --> #LUCOP3/V98 / 3112 дней назад

@l29ah An anaphoric macro is a type of programming macro that deliberately captures some form supplied to the macro which may be referred to by an anaphor (an expression referring to another).

#LUCOP3/GGT / @ninesigns --> #LUCOP3/93Y / 3112 дней назад
@ninesigns >как сказать так чтобы никто нихуя не понял
#LUCOP3/S16 / @anonymous --> #LUCOP3/GGT / 3112 дней назад

@anonymous чо за нихуя? ты пихаешь в голову if выражение, оно вычисляется и лексически биндится на тело if.

#LUCOP3/Q5Y / @ninesigns --> #LUCOP3/S16 / 3112 дней назад
@ninesigns Не распарсил в контексте твоего вопроса. Ты хочешь foldM + and + seq + zip [1..] или что?
#LUCOP3/MK6 / @l29ah --> #LUCOP3/GGT / 3112 дней назад
@ninesigns Чем отличается "лексически биндится" от "возвращается"?
#LUCOP3/UDE / @l29ah --> #LUCOP3/Q5Y / 3112 дней назад
@ninesigns головы какие-то, биндится кудато, по человечьи говори
#LUCOP3/8UK / @mugiseyebrows --> #LUCOP3/Q5Y / 3112 дней назад
@ninesigns так во всех функциональных/"функциональных" языках происходит, с поправкой на lazy/eager evaluation поменьше sepples кушай, а то совсем уж там ебанёшься
#LUCOP3/EWA / @anonymous --> #LUCOP3/Q5Y / 3112 дней назад

@l29ah

aif (read(fd, buf, size) > 0) {
if (!_aif_arg)
printf ("pizda");
else
printf ("bytes read: %u\n", _aif_arg1);
}

тут read(...) вычисляется один раз, записывается в _aif_arg и к этому _aif_arg можно из тела aif (все что в {})

#LUCOP3/PI2 / @ninesigns --> #LUCOP3/UDE / 3112 дней назад

@anonymous ну кул, накидай язычков, где есть хуйта (плюс минцс), которую я хочу.

#LUCOP3/ZTR / @ninesigns --> #LUCOP3/EWA / 3112 дней назад
@ninesigns в шары долбишься?
#LUCOP3/OTP / @anonymous --> #LUCOP3/ZTR / 3112 дней назад
@ninesigns f a | a > 0 = show $ a + 666 | otherwise = "pizda"
#LUCOP3/ZJC / @l29ah --> #LUCOP3/PI2 / 3112 дней назад
@ninesigns на самом деле неоч понятно что ты хочешь т.е. понятно, что тебе просто нужна булевая переменная, но при чём тут макросы - совершенно не понятно
#LUCOP3/HSS / @anonymous --> #LUCOP3/ZTR / 3112 дней назад

@l29ah хуле мне твои факториалы, давай пример с чтением из файлового дескриптора

#LUCOP3/ZCS / @ninesigns --> #LUCOP3/ZJC / 3112 дней назад

@anonymous я не хочу в голове

#LUCOP3/SSY / @ninesigns --> #LUCOP3/HSS / 3112 дней назад
@ninesigns Без do, или сам сможешь переформулировать это в атомарные функции над Monad?
#LUCOP3/2OT / @l29ah --> #LUCOP3/ZCS / 3112 дней назад

@ninesigns ... в голове if присвавать значения. как ты это кроме как макросом сделаешь?
в языках с call-by-need все более/менее понятно

#LUCOP3/69Y / @ninesigns --> #LUCOP3/SSY / 3112 дней назад

@l29ah мне в общем-то без разницы как.
do-нотация - это сахарок для манаток.

#LUCOP3/JMS / @ninesigns --> #LUCOP3/2OT / 3112 дней назад
@ninesigns чо, там в крестах ```if(bool a = 1>2){...}``` нельзя штоле?
#LUCOP3/BTY / @anonymous --> #LUCOP3/69Y / 3112 дней назад

@anonymous можно, хочу без объявлений в голове if. олсо у тебя приоритет операций

#LUCOP3/FCR / @ninesigns --> #LUCOP3/BTY / 3112 дней назад
@ninesigns do a <- read bullshit print $ if cool a then show a else "pizda" ?
#LUCOP3/QXI / @l29ah --> #LUCOP3/JMS / 3112 дней назад
@ninesigns на самом деле хуйню ты хочешь. потому что внутри бранчей ифа значение a = константа.
#LUCOP3/W1I / @anonymous --> #LUCOP3/FCR / 3112 дней назад

@anonymous http://ideone.com/b0Q9gQ
съеби

#LUCOP3/578 / @ninesigns --> #LUCOP3/W1I / 3112 дней назад
@ninesigns >не может обьяснить чего хочет >просит сьебать аутизм (в плохом смысле)/10
#LUCOP3/3ZZ / @anonymous --> #LUCOP3/578 / 3112 дней назад

@anonymous хуле тебе в /0 не понятно?

#LUCOP3/QNM / @ninesigns --> #LUCOP3/3ZZ / 3112 дней назад
@ninesigns там ни слова о твоей проблеме, только баззворды, тупой штоле
#LUCOP3/DGR / @anonymous --> #LUCOP3/QNM / 3112 дней назад

@anonymous я хочу хуйнуть в специальный if пачку операндов
сам объявлять переменные куда сохранять результаты вычисления не хочу.
хочу иметь доступ к результатам из тела if.

#LUCOP3/C1Y / @ninesigns --> #LUCOP3/DGR / 3112 дней назад
@ninesigns То есть хочешь чтобы за тебя написали let уёбищное_имя_шоб_никогда_не_склешилось = пук?
#LUCOP3/8X1 / @l29ah --> #LUCOP3/C1Y / 3112 дней назад
Нихуя не понил.
#LUCOP3/TP4 / @kuzy000 / 3112 дней назад
@kuzy000 msg.getString(...) - та хуйня которая должна фейлиться? //
#LUCOP3/ZO6 / @kuzy000 --> #LUCOP3/TP4 / 3112 дней назад

@kuzy000 aga

#LUCOP3/6Y2 / @ninesigns --> #LUCOP3/ZO6 / 3112 дней назад
@ninesigns Значения этого говна должно АНАФОРИЧЕСКИ захватываться и складываться в evalValues, потом лямбды еваляться и возвращается коньюкция их результатов? // Бля, рекомендую ПЕРЕМЕННЫЕ и 1 (один) иф.
#LUCOP3/FLA / @kuzy000 --> #LUCOP3/6Y2 / 3112 дней назад
@kuzy000 это // this // ЕТО Рассматривай имя переменной как документацию кода // а свои выдумки - как обфускацию // сорь.
#LUCOP3/5O7 / @l29ah --> #LUCOP3/FLA / 3112 дней назад
@kuzy000 А бля, оно там ФЕЙЛИТСЯ и в инт записывает где именно, а вторая хуйня если не сфейлилось // можнозделать // бля причем тут and?
#LUCOP3/HA6 / @kuzy000 --> #LUCOP3/FLA / 3112 дней назад
@kuzy000 ПОНЯЛ // ЗДЕЛОЙ // Через два часа найдешь себя отлаживающим метаговно в 200 строк. Рекомендую переменные.
#LUCOP3/0CI / @kuzy000 --> #LUCOP3/HA6 / 3112 дней назад
Скока миллиграммов?
#LUCOP3/9MM / @l29ah / 3112 дней назад
У тебя есть набор функций (void) -> T, значение ошибки T::0 и тебе нужно вернуть {наличие T_0, полученные T}? А потом в зависимости от наличия T_0 вызвать одну из двух функций для полученных T?
#LUCOP3/RDV / @o01eg / 3112 дней назад
Типа есть f :: a -> Either b c И ты хочешь superif :: [(a -> Either b c)] -> (a -> b -> bool) -> (a -> c -> bool) -> bool +- IO ?
#LUCOP3/GP8 / @plhk / 3112 дней назад
@plhk tfw хаскель стал языком обсуждения программирования/проектирования
#LUCOP3/QD3 / @l29ah --> #LUCOP3/GP8 / 3112 дней назад

@l29ah Не стал

#LUCOP3/Y2F / @ninesigns --> #LUCOP3/QD3 / 3111 дней назад

@plhk Бля охуеть ты записал сигнатуру функции

#LUCOP3/FZ1 / @ninesigns --> #LUCOP3/GP8 / 3111 дней назад

@plhk f - вряд ли будет чистой

#LUCOP3/03F / @ninesigns --> #LUCOP3/GP8 / 3111 дней назад
@plhk http://is.gd/DhKNJl так что ле?
#LUCOP3/YND / @plhk --> #LUCOP3/GP8 / 3111 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.