Home
codingteam
codingteam@conference.jabber.ru
21.09.2013< ^ >

Тема: C/С++, Haskell, Ruby, Python, Perl, Lisp, Erlang, OCaml, JavaScript, Scala, Nemerle, F#.
Код выкладывать на http://dumpz.org
Вопросы задавать в чат, а не в личку.
Логи: http://tinyurl.com/ctcjr-logs
Упоминания о Flash, Java, .NET, PHP, Pascal/Delphi/Borland, 1С караются съеданием поциента.
Личкрафты: http://leechcraft.org и git://github.com/0xd34df00d/leechcraft.git
Horta Hell: https://github.com/ForNeVeR/horta-hell
Проблем решено: 0x15
Говорящих демонов: 0x1

=> Объявляется неделя народного дивана.
[00:03:09] emu-nero~ вышел из конференции
[00:31:20] moonhawk вышел из конференции
[00:44:53] <j123123> http://compsciclub.ru/courses/theoremproving во
[02:02:37] wayfarer345 зашёл в конференцию
[02:02:51] wayfarer345 вышел из конференции
[02:10:53] wayfarer345 зашёл в конференцию
[02:11:06] wayfarer345 вышел из конференции
[02:15:59] Myp вышел из конференции
[02:42:02] Сволота вышел из конференции
[02:53:07] magog вышел из конференции
[03:25:55] ffinder вышел из конференции
[04:37:52] goodstuff зашёл в конференцию
[05:19:00] Славный капитан зашёл в конференцию
[05:37:06] sss|zombie вышел из конференции
[05:39:51] goodstuff вышел из конференции
[07:25:57] Славный капитан вышел из конференции
[07:27:54] Славный капитан зашёл в конференцию
[09:00:33] Славный капитан вышел из конференции
[09:26:26] vocaloid@jabber.ru зашёл в конференцию
[09:35:56] <ktt9> Уран.
[09:39:33] <ktt9> Только что хотел спросить, почему gen_server уходит в таймаут при попытке сделать :call(self(), {whatever}), но понял, что что-то тут не так.
[09:40:38] moonhawk зашёл в конференцию
[09:47:12] Сволота зашёл в конференцию
[09:58:13] vocaloid@jabber.ru вышел из конференции: http://comicslate.org вики для переводов вебкомиксов. нам срочно нужны добровольцы-переводчики (не только английский)
[10:12:32] magog зашёл в конференцию
[10:31:09] magog вышел из конференции: Клиент ушел спать
[10:58:55] sss|zombie зашёл в конференцию
[11:08:34] moonhawk вышел из конференции
[11:44:18] m4n71k0r зашёл в конференцию
[11:56:24] <ForNeVeR> call это же блокирующий?
[12:01:38] <ktt9> Вот-вот.
[12:02:52] emu-nero~ зашёл в конференцию
[12:05:06] <rexim> .ping
[12:05:07] <DeadBot> rexim: понг от тебя 0.07 секунды
[12:05:08] <rexim> .ping
[12:05:09] <DeadBot> rexim: понг от тебя 0.07 секунды
[12:05:10] <rexim> .ping
[12:05:11] <DeadBot> rexim: понг от тебя 0.09 секунды
[12:05:16] <rexim> $say 10
[12:05:22] <horta hell> rexim: Я же модифицирует сегмент данных из франции. Он осознал свою ошибку?
[12:05:24] <horta hell> [Re]rexim: Requested phrase was not found, sorry.
[12:05:26] <horta hell> [Re]rexim: Requested phrase was not found, sorry.
[12:05:33] <rexim> Что?!
[12:05:45] <rexim> horta hell: ты упорот?
[12:14:36] Славный капитан зашёл в конференцию
[12:15:49] <ForNeVeR> Утра, эльфачи!
[12:16:00] <ForNeVeR> о_О
[12:16:22] <ForNeVeR> $say
[12:16:27] <emu-nero~> да упороты
[12:16:29] <horta hell> ForNeVeR: cutwater, алсо ты там Bogolt'а.
[12:16:31] <horta hell> ForNeVeR: magog: я серьёзно, между пальцев ног, считается для C#.
[12:16:57] <ForNeVeR> Хм.
[12:17:05] <ForNeVeR> Кажется, акторы размножились в хорте.
[12:17:09] <ForNeVeR> $pet
[12:17:09] <horta hell> Попробуйте $pet help.
[12:17:11] <horta hell> Попробуйте $pet help.
[12:17:12] <ForNeVeR> $pet help
[12:17:13] <horta hell> Доступные команды: help, stats, kill, resurrect, feed, heal, change nick
[12:17:16] <horta hell> Доступные команды: help, stats, kill, resurrect, feed, heal, change nick
[12:17:19] <ForNeVeR> Гы.
[12:17:19] Славный капитан вышел из конференции
[12:17:29] horta hell вышел из конференции
[12:17:47] horta hell зашёл в конференцию
[12:17:47] <horta hell> Muhahahaha!
[12:18:30] <ForNeVeR> $say
[12:18:39] <horta hell> ForNeVeR: Ой.
[12:18:56] <ForNeVeR> Семь бед - один резет.
[12:28:45] swagman зашёл в конференцию
[12:33:12] emu-nero~ вышел из конференции
[12:42:58] <rexim> Утечка акторов?
[12:42:59] <rexim> Хм...
[12:47:50] <ktt9> $say
[12:47:55] <horta hell> ktt9: Только утро, а остальное - неинтересно.
[12:48:15] <ktt9> Суть™ кодингтима.
[12:48:24] emu-nero~ зашёл в конференцию
[12:52:46] eaeee вышел из конференции: Replaced by new connection
[12:52:48] eaeee зашёл в конференцию
[12:54:46] <m4n71k0r> акторы размножились? А в каком случае такое происходит?
[12:55:36] <ForNeVeR> Если падает чего-нибудь.
[12:55:47] <ForNeVeR> akka тогда рестартит актора.
[12:56:10] <ForNeVeR> А если его криво написать (как, например, у меня написано) - то он при рестарте своих детей повторно создаст.
[12:56:23] <ForNeVeR> И обязательно чего-нибудь сглючит, т.к. будут живы и старые дети, и новые.
[12:57:17] <ForNeVeR> Я, честно говоря, так и не разобрался с жизненным циклом актора при рестарте.
[12:57:29] <ForNeVeR> И не знаю, какие методы нужно перегружать, чтоб всё работало.
[12:59:45] magog зашёл в конференцию
[13:10:12] <rexim> $say 10
[13:10:17] <horta hell> rexim: А вообще это так, очень рад за 7 минут до сих пор не возможно? )
[13:10:22] <rexim> $say 10
[13:10:22] <horta hell> rexim: ForNeVeR, они выпускают сорт english breakfast" даже сказал, что ты - World of *Unix fortune files*.
[13:10:35] <rexim> шта
[13:10:47] <rexim> World of Unix fortune files.
[13:10:56] <rexim> $fortune
[13:10:57] <horta hell> #8711
When you're down and out, lift up your voice and shout, "I'M DOWN AND OUT"!
[13:11:16] <rexim> $fortune
[13:11:16] <horta hell> #4886
Life is like a tin of sardines. We're, all of us, looking for the key.
-- Beyond the Fringe
[13:11:29] <rexim> $fortune
[13:11:29] <horta hell> #10904
When the going gets weird, the weird turn pro.
-- Hunter S. Thompson
[13:11:35] <rexim> $fortune
[13:11:35] <horta hell> #4145
See label for sequence.
[13:11:39] <rexim> $say 10
[13:11:39] <horta hell> rexim: ForNeVeR: а мож кеды под него сервера на соусфорже deb пакетик есть ненулевые значения?
[13:12:30] rexim вышел из конференции
[13:22:56] ffinder зашёл в конференцию
[14:11:49] goodstuff зашёл в конференцию
[14:31:46] swagman вышел из конференции: Я использую Miranda IM (http://miranda-im.org/.)
[14:35:19] zxc_ зашёл в конференцию
[14:43:51] rexim зашёл в конференцию
[14:45:17] ffinder вышел из конференции
[14:45:38] ffinder зашёл в конференцию
[15:05:36] eaeee вышел из конференции
[15:16:46] moonhawk зашёл в конференцию
[15:20:51] moonhawk вышел из конференции
[15:21:26] magog вышел из конференции
[15:21:50] magog зашёл в конференцию
[15:22:19] moonhawk зашёл в конференцию
[15:28:41] <j123123> .z
[15:28:41] zxc_ выгнали из конференции: You underestimate j123123's power!
[15:28:41] <DeadBot> j123123: ok
[15:54:47] moonhawk вышел из конференции
[15:59:15] moonhawk зашёл в конференцию
[16:02:49] magog вышел из конференции
[16:13:23] sss|zombie вышел из конференции
[16:25:01] <ktt9> $say
[16:25:05] <horta hell> ktt9: oh, i see
[16:25:11] <ktt9> $say 10
[16:25:11] <horta hell> ktt9: Я имею в школе и боялся больше хороших и плюсоебы с Си.
[16:25:24] <ktt9> oh my
[16:25:29] <ForNeVeR> ktt9: в школе боялся больших хороших плюсоёбов?
[16:25:39] <ForNeVeR> Вот это я называю по-настоящему *трудным* детством.
[16:25:57] <ktt9> Больше хороших плюсоебов. И Си.
[16:26:28] moonhawk вышел из конференции
[16:36:48] <rexim> $say 10
[16:36:52] <horta hell> rexim: Requested phrase was not found, sorry.
[16:36:54] <rexim> $say 10
[16:36:54] <horta hell> rexim: бывает разный, да. Это Синий Зубчатый самоцвет 359-го уровня. Этот ваш код. Он ушел. :(
[16:37:01] <rexim> >_<
[16:37:29] <rexim> $say 10
[16:37:29] <horta hell> rexim: Я хочу решить задачку которую предлагал такое говно. В данный byfly где-то кого-то заборонить.
[16:37:37] <rexim> $say 10
[16:37:37] <horta hell> rexim: Requested phrase was not found, sorry.
[16:37:38] <rexim> $say 10
[16:37:39] <horta hell> rexim: PhoSor, цодингтим -- чистый язык, платформу, etc, пиши игру прошел?
[16:37:45] <rexim> $say 10
[16:37:45] <horta hell> rexim: Если framework - это ж тебя ничего не было использовано овердохуя технологий.
[16:37:58] <rexim> $say 10
[16:37:58] <horta hell> rexim: Даже если серьезно это Форневера написать данный byfly где-то обсуждал, и меня нет на перевес ещё и use чтоле?
[16:38:10] <rexim> Что за byfly?
[16:38:14] <ForNeVeR> Уже не первый раз какой-то byfly.
[16:38:28] <rexim> http://byfly.by/
[16:38:30] <ForNeVeR> $say 10
[16:38:30] <horta hell> ForNeVeR: BLOOD GORE DESTROY
[16:38:34] <rexim> >_<
[16:38:34] <ForNeVeR> Охтыж
[16:38:39] <ForNeVeR> Э.
[16:38:43] <horta hell> ForNeVeR: ДА НУ?
[16:38:44] <horta hell> ForNeVeR: А КТО ВАС НАЧИНАЮ БЕСПОКОИТЬСЯ!
[16:38:47] <horta hell> ForNeVeR: МНЕ ИНТЕРЕСНО, КАК НЕХРЕН ДЕЛАТЬ: HTTP://HACKAGE.HASKELL.ORG/PACKAGE/MONAD-EXCEPTION
[16:38:49] <horta hell> ForNeVeR: РЕКОРД ЭТО НЕВОЗМОЖНО, ИМХО.
[16:38:51] <horta hell> ForNeVeR: ISTERIQUE НЕ ЗАКРЫВАЙ.
[16:38:53] <horta hell> ForNeVeR: ИНАЧЕ ТЕБЯ ЖЕ ЗНАЕШЬ, КТО ПЛАТИТ, ТОТ ИЛИ VCLX.
[16:38:56] <horta hell> [Re]ForNeVeR: НУ ИЛИ ТЫ ЕГО МОЖНО ЕГО - НЕ УМЕЕТ, ПОЛУЧАЕТСЯ?
[16:38:58] <horta hell> [Re]ForNeVeR: 0XD34DF00D: РАНДОМНОСТЬ ЗАКОНЧИЛАСЬ.
[16:39:00] <horta hell> [Re][Re]ForNeVeR: ТО БИШЬ БУЛЕВСКОЕ.
[16:39:04] <horta hell> [Re][Re][Re][Re]ForNeVeR: ДА ПРОСТО ТАК ЭТО ЧТО РАЗНОСТИ ПОТЕНЦИАЛОВ МЕЖДУ КЛИЕНТАМИ НА CPU ЗАТОЧИТЬСЯ ВООБЩЕ?
[16:39:08] <ForNeVeR> Ужас-то какой.
[16:39:08] <rexim> РАНДОМНОСТЬ ЗАКОНЧИЛАСЬ!!1
[16:39:15] <ForNeVeR> Надо бы эти [Re] починить уже, кстати.
[16:39:20] <rexim> $say 10
[16:39:20] <horta hell> rexim: И что у вас гитхаб уникорна показывает? У меня убедил.
[16:39:27] <rexim> $say 10
[16:39:27] <horta hell> rexim: Это некий алгоритм описанный в жертву Богу Линукса и плазма не продолжай!
[16:39:39] <rexim> > алгоритм описанный в жертву Богу Линукса
[16:39:52] <ForNeVeR> Плазма, не продолжай!
[16:39:56] <ForNeVeR> Порошок, не входи.
[16:40:14] <rexim> Плазма! Уводи порошок!
[16:40:31] <ForNeVeR> Плазма - неплохой способ пожаротушения, кстати.
[16:41:48] <rexim> $say 10
[16:41:48] <horta hell> rexim: Ня! В мути сознания, находим, что ты превратился в... Сволоч!
[16:41:57] <rexim> Внезапно!
[16:42:27] <rexim> $say 10
[16:42:27] <horta hell> rexim: Это не поверишь, но это что на стороне клиента. Уже - звучит убойно.
[16:43:30] <emu-nero~> зачем оно капсом строчит?
[16:43:36] <ForNeVeR> > Ня! В мути сознания, находим, что ты превратился в... Сволоч!
[16:43:40] <ForNeVeR> Это просто великолепно.
[16:44:09] <ForNeVeR> emu-nero~: если его доебать, то он начинает капсом ругаться.
[16:44:20] <ForNeVeR> Это называется "BLOOD GORE DESTROY".
[16:44:28] <emu-nero~> но ссылки зачем он капсом пишет?
[16:44:31] <ForNeVeR> Причём реально много ругается.
[16:44:33] <emu-nero~> исправте
[16:44:38] <ForNeVeR> emu-nero~: это фича.
[16:44:51] <ForNeVeR> Ссылки нужно произносить гроулом.
[16:44:55] <emu-nero~> это говно, а не фича.
[16:44:59] <ForNeVeR> Это ты говно.
[16:45:03] <emu-nero~> нет
[16:45:05] <emu-nero~> я хуй.
[16:45:16] <ForNeVeR> Не без этого, да.
[16:48:33] <Сволота> бот решил что кто-то превратился в меня O_o
[16:49:50] moonhawk зашёл в конференцию
[16:52:56] <rexim> $say 10
[16:53:00] <horta hell> rexim: 0xd34df00d, Да это что ты скучный. Иди пиши XMPP клиентики.
[16:53:04] <rexim> >_<
[16:53:18] <rexim> Хм...
[16:53:48] <rexim> Бот знает про xmpp-клиент в личкрафтах.
[16:55:37] <ktt9> $say 10
[16:55:40] <horta hell> ktt9: Гм. Не ну. Захотел ооп - это не реальные задачи, а просто противно и вообще, развитие - это виктимность ._.
[16:55:50] <ktt9> ...
[16:56:17] <ktt9> Не буду я больше бота тыкать.
[16:56:23] <ktt9> Он меня компрометирует.
[16:56:53] <rexim> $say 10
[16:56:54] <horta hell> rexim: Это вы подразумеваете под названием "Tiny Toons: Buster's hidden treasure" :3
[16:57:00] <rexim> O_o
[16:57:08] <rexim> $say 10
[16:57:08] <horta hell> rexim: Почему же? Алекс Отт в будущем сделать котлету получится посмотреть. :(
[16:57:26] <rexim> Алекс Отт в будущем сделает лучшую котлету в мире!
[16:57:31] <rexim> Я уверен в этом.
[16:57:53] <ktt9> Всем лиспа.
[16:58:02] <rexim> Котлета с лиспом.
[17:02:34] <emu-nero~> глистом
[17:03:51] <emu-nero~> ну что вы, герры недолюди.
[17:08:52] <ForNeVeR> $say 10
[17:08:59] <horta hell> ForNeVeR: Да вроде просил, чтобы компилер принимал флаг при помощи регекспов?
[17:09:07] <ForNeVeR> U_U
[17:31:04] <Сволота> $say 10
[17:31:09] <horta hell> Сволота: скорей всего то регулярный пересчёт будет клянча "пустите" и осуждаем
[17:56:44] <emu-nero~> Сволота: обнимашки?
[18:34:45] <ForNeVeR> Котаны.
[18:34:50] <ForNeVeR> Нам нужна технология особая.
[18:34:55] <ForNeVeR> j123123: вот и ты слушай.
[18:35:00] <j123123> А?
[18:35:02] <ForNeVeR> Допустим, есть у меня список.
[18:35:05] <ForNeVeR> Связный.
[18:35:21] <m4n71k0r> n-связный?
[18:35:25] <ForNeVeR> Я пишу условие
if (list.length > 10) a; else b;
[18:35:36] <emu-nero~> ичо.
[18:35:44] <ForNeVeR> Нужна такае ленивость, которая бы посчитала длину только до 10.
[18:35:52] <ForNeVeR> А потом бы поняла, что дальше считать нет смысла.
[18:36:08] <emu-nero~> разве в списках длину не заранее высчитывают?
[18:36:14] <ForNeVeR> В хаскеле сейчас такое, например, не работает. И из-за этого проблем много
[18:36:21] <j123123> Почему бы просто не хранить длину списка?
[18:36:29] <ForNeVeR> Как?
[18:36:33] <m4n71k0r> ПАТАМУШТА ОН ЛЕНИЫЙ СПИСОК"
[18:36:37] <ForNeVeR> Список может быть частью другого списка.
[18:36:43] <ForNeVeR> И какую длину, где её хранить?
[18:37:11] <ForNeVeR> j123123: ну и задача-то не про списки.
[18:37:19] <ForNeVeR> А про "особый вид ленивости" (тм)
[18:37:20] <emu-nero~> длину текущего списка.
[18:37:59] <ForNeVeR> Типа short-circuit, но и для сравнений тоже, а не только для &&.
[18:38:09] <ForNeVeR> emu-nero~: какого текущего списка?
[18:38:14] <emu-nero~> в хаскеле всё на списках?
[18:38:23] <ForNeVeR> [1,2,3] == 1::2::3::nil
[18:38:35] <ForNeVeR> Три конс-ячейки.
[18:38:41] <emu-nero~> ForNeVeR: если ты выдираешь кусок списка из общего списка, то разве ты не знаешь какое количество элементов выдираешь?
[18:38:43] <ForNeVeR> Где в них длину хранить? И длину чего?
[18:38:50] <emu-nero~> в структуре списка
[18:38:51] <ForNeVeR> emu-nero~: я не выдираю ничо.
[18:38:55] <emu-nero~> на нижнем уровне
[18:38:55] <ForNeVeR> Где*
[18:38:57] <ForNeVeR> ?
[18:39:02] <ForNeVeR> Структура списка - это ::
[18:39:05] <emu-nero~> в реализации списка бл.
[18:39:21] <ForNeVeR> Где хранить длину? И что делать с мутабельностью, например?
[18:39:26] <emu-nero~> с чем?
[18:39:28] <ForNeVeR> Или с бесконечным списком?
[18:39:34] <ForNeVeR> emu-nero~: иди нахуй просто.
[18:39:36] <emu-nero~> что за говно вы там понапридумывали.
[18:39:41] <ktt9> А при чем тут мутабельность?
[18:39:52] <j123123> В первом элементе связного списка можно хранить количество элементов списка, и когда в список вставляется еще элемент, то можно инкрементировать хрень в первом элементе связного списка
[18:40:13] <j123123> А пробегать связный список чтобы узнать его длину - неэффективно
[18:40:15] <ForNeVeR> j123123: что делать с мутабельностью?
[18:40:27] <emu-nero~> какой нхй мутабельность
[18:40:28] <emu-nero~> ю
[18:40:32] <ForNeVeR> .kick emu-nero~
[18:40:32] emu-nero~ выгнали из конференции: DeadBot
[18:40:32] <DeadBot> ForNeVeR: ok
[18:40:38] emu-nero~ зашёл в конференцию
[18:40:52] <emu-nero~> пост-апокакалептический хаскелл чтоле?
[18:41:01] <ktt9> ForNeVeR, brace yourself!
[18:41:16] <ForNeVeR> j123123: получается, если я хвост элемент конс-ячейки подменил, то мне нужно найти все другие ячейки, которые на неё ссылаются, и обновить в них длину?
[18:41:24] <ForNeVeR> И так рекурсивно, по всем спискам в памяти?
[18:41:28] <ForNeVeR> Довольно жёстко.
[18:41:40] <ForNeVeR> И вы мне тут говорите про эффективность.
[18:41:54] <emu-nero~> с чего бы такая хрень тебе понадобилась?
[18:41:55] <ForNeVeR> j123123: ну и - ещё раз - покажи мне место в конс-ячейке, где я буду хранить длину.
[18:42:23] <ForNeVeR> Там только head :: tail.
[18:42:40] <ForNeVeR> И вообще, вопрос не про списки.
[18:42:48] <ForNeVeR> А про ленивость и оптимизации.
[18:43:38] <ForNeVeR> Вот другой пример: у нас есть выражение a + b + c > 100U. Все числа - unsigned. Представим, что сумма - сложная операция.
[18:43:39] <emu-nero~> мне даже gcc говорит что у меня есть мыло.
[18:43:44] <emu-nero~> `--> ${CC} -ggdb2 `pkg-config --cflags --libs iksemel libev` -lresolv -std=c99 main.c ^_^
You have new mail.
[18:44:14] <ForNeVeR> Хотелось бы, чтобы вычисление завершилось уже после вычисления a + b, если a + b > 100U.
[18:44:49] <ForNeVeR> То есть хотелось бы автоматического преобразования
a + b + c > 100U
<=>
a > 100U || a + b > 100U || a + b + c > 100U.
[18:45:07] <ForNeVeR> И со списками так же, но прозрачно для функции / свойства length.
[18:46:07] <ForNeVeR> Вот хаскель, например, так не умеет.
Выражение
length [1..] > 0
на нём занимает бесконечное время.
[18:46:14] <ForNeVeR> А нужно, чтобы мгновенно выполнялось.
[18:46:26] <ForNeVeR> Кто знает, как такое называется?
[18:46:30] <ForNeVeR> ffinder?
[18:46:40] <j123123> Да, тут имеет смысл. Но тут тонкость есть. Эти вещи неравнозначны. Если сложить три unsigned у нас есть шанс, что результат сложения не будет влезать в unsigned
[18:46:55] <ForNeVeR> j123123: для упрощения задачи пока игнорируем.
[18:47:07] <ForNeVeR> Ещё раз - задача не про списки и не про unsigned.
[18:47:30] <ffinder> j123123: даже любые 2 числа если сложить можно получить переполнение
[18:47:41] <ffinder> но я не понял вопроса
[18:47:41] <ForNeVeR> ffinder: пруф или нет.
[18:47:53] <ForNeVeR> Я могу сложить любые два числа и не получить переполнения.
[18:48:01] <ktt9> ForNeVeR, а такие штуки не приведут к какой-нибудь неразрешимости?
[18:48:02] <ForNeVeR> stack overflow если только.
[18:48:03] <ffinder> ты подебил, окей
[18:48:07] <emu-nero~> ForNeVeR: так в чём у тебя проблема-то?
[18:48:13] <ForNeVeR> ffinder: первичный вопрос про length
[18:48:16] <emu-nero~> бери да ходи по списку
[18:48:27] <ForNeVeR> Как сделать, чтобы length [1..] > 0 выполнялось быстро?
[18:48:33] <ForNeVeR> Нужна суперкомпиляция?
[18:48:37] <ForNeVeR> Без неё никак?
[18:48:45] <ForNeVeR> Просто ленивости уже недостаточно, например.
[18:48:47] <ffinder> посчитать длину бесконечного списка?
[18:48:52] <ForNeVeR> Неа.
[18:48:56] <ktt9> Ленивая ленивость.
[18:49:00] <ForNeVeR> Проверить, что длина бесконечного списка больше 0.
[18:49:21] <ForNeVeR> Это не должно быть то же самое, что и "посчитать длину бесконечного списка, а потом сравнить с нулём".
[18:49:24] <ktt9> ForNeVeR, а в Coq или Агде можно это написать?
[18:49:26] <ForNeVeR> Собственно, в этом и вопрос.
[18:49:46] <j123123> Так это понятно. Есть некие проверки чего-то. Если в процессе частичной проверки выявлено, что уже дальнейшие проверки смысла проводить нет, то можно эти дальнейшие проверки и не проводить
[18:49:57] <ktt9> То есть описатьс так, чтобы вычислилось мгновенно.
[18:50:00] <ffinder> ну, пустой список это [], имеет длину 0, остальные другие списки имеют какую-то другую длину
[18:50:09] <ForNeVeR> ffinder: а теперь с единицей.
[18:50:20] <j123123> Например if ( (a-b)*(c-d)*(e-f) != 0 )
[18:50:32] <ForNeVeR> Ты щас предложишь сравнивать список со всеми возможными списками единичной длины? Не сработает.
[18:50:48] <ForNeVeR> j123123: ок, ты понял и сформулировал более человечно.
[18:50:52] <j123123> Если хотя бы одна (a-b) (c-d) (e-f) дает ноль
[18:51:00] <j123123> то дальше можно не считать
[18:51:23] <ForNeVeR> Это суперкомпиляция? Или просто хитрая оптимизация?
[18:55:31] <ForNeVeR> Можно легко написать функцию lengthIsGreater, которая бы лениво выполняла проверку.
[18:56:09] <ForNeVeR> Но вопрос в том, какие преобразования нужно выполнить, чтобы исходная проверка с прямым вызовом length бы работала так же.
[18:56:36] <ForNeVeR> Есть ли такие технологии?
[18:57:42] <j123123> Ну, GCC вполне может додуматься, он вообще достаточно умный
[18:58:39] <ForNeVeR> The problem is - в GCC нет ни ленивости, ни бесконечных списков.
[18:59:00] <ForNeVeR> В нём задача не то чтобы нерешаема, а вообще не имеет смысла.
[18:59:29] <j123123> Задача с if ( (a-b)*(c-d)*(e-f) != 0 ) вполне решаема
[18:59:30] <ForNeVeR> А если я сделаю ручной список и ручную функцию вычисления длины - то он ничего не оптимизирует, разумеется.
[18:59:43] <ForNeVeR> От ghc можно было бы ожидать такого.
[18:59:59] <ForNeVeR> Но в данном случае из-за формальностей он тоже не может ничего сделать.
[19:01:08] <ForNeVeR> Я не знаю такой редукции, которая бы позволяла что-то узнать о длине списка, не вычисляя этой длины.
[19:01:17] <ForNeVeR> :(
[19:01:28] <j123123> Нужно просто делать не функцию вычисления длинны, а функцию которая бы отвечала на вопрос, не длиннее ли оно чем такое-то заданное число
[19:01:42] <ForNeVeR> Хотя вот суперкомпиляция может - но только в компил-тайме. Это то же самое, что я хочу, или нет?
[19:01:48] <ForNeVeR> j123123: да, я уже это сказал.
[19:02:13] <ForNeVeR> <\fs20 ForNeVeR> Можно легко написать функцию lengthIsGreater, которая бы лениво выполняла проверку.
<ForNeVeR> Но вопрос в том, какие преобразования нужно выполнить, чтобы исходная проверка с прямым вызовом length бы работала так же.
[19:02:55] <ForNeVeR> j123123: ты же изобретаешь свои языки с чем-то, напоминающим суперкомпиляцию. Ты не задумывался над такой проблемой?
[19:05:21] <j123123> Да, задумывался. Когда думал над решением какой-то геометрической задачки. Там ведь есть понятие необходимого и есть понятие достаточного условия
[19:05:32] m4n71k0r вышел из конференции
[19:06:14] <ForNeVeR> Я не вполне понимаю, как можно уложить задачу в термины необходимых и достаточных условий.
[19:06:20] <ForNeVeR> Вот у нас есть предикат length > 0
[19:06:30] <ForNeVeR> Где тут эти условия?
[19:07:02] <ForNeVeR> В принципе, компилятор мог бы догадаться, что это условие нужно перепроверять на каждом шаге функции length.
[19:07:18] <ForNeVeR> Которая хранит на стеке своё возвращаемое значение.
[19:07:37] <ForNeVeR> Но для этого ему нужно осознать, например, что значение никогда не уменьшается, а только увеличивается.
[19:07:55] <ForNeVeR> Таки да - это суперкомпиляция.
[19:09:24] <j123123> если есть функция вычислить длину, которая пробегает вообще весь массив, возвращая его длину. Через каждый шаг возвращать длину - невыгодно. Надо чтобы на основе сравнения длинны с числом была сгенерирована функция, которая проходит массив, и если она сделала N шагов и не дошла до конца, то прерываем это дело.
[19:09:51] <j123123> вот примерно так
[19:09:53] <ForNeVeR> Да, всё верно.
[19:10:05] <ForNeVeR> Только это компилятор должен сам выводить.
[19:10:14] <ForNeVeR> Причём не только для длины, а для чего угодно.
[19:16:18] <j123123> Я пример приводил с printf и регекспами, вот тут http://0xd34df00d.me/logs/chat/codingteam@conference.jabber.ru/2013/09/14.html#14:01:35
[19:17:07] <ForNeVeR> Я не уверен, что это именно то, о чём я говорю. Хотя очень похоже на замену "length > 0" на "lengthIsGreater 0".
[19:23:55] j123123 вышел из конференции: Replaced by new connection
[19:24:06] j123123 зашёл в конференцию
[19:28:14] <emu-nero~> кодингопроблемы
[19:28:18] Serpentes зашёл в конференцию
[19:33:57] emu-nero~ вышел из конференции
[19:51:40] <rexim> $say 10
[19:51:45] <horta hell> rexim: Requested phrase was not found, sorry.
[19:51:47] <rexim> $say 10
[19:51:47] <horta hell> rexim: Requested phrase was not found, sorry.
[19:51:50] <rexim> $say 10
[19:51:50] <horta hell> rexim: Requested phrase was not found, sorry.
[19:51:52] <rexim> =\
[19:51:53] <rexim> $say 1-0
[19:51:54] <horta hell> rexim: Yodaff: да да
[19:51:57] <rexim> $say 10
[19:51:57] <horta hell> rexim: Requested phrase was not found, sorry.
[19:52:00] <rexim> $say 5
[19:52:00] <horta hell> rexim: xmi: И эта область побочных эффектов.
[19:52:05] <rexim> Хм...
[19:56:09] eaeee зашёл в конференцию
[19:57:33] emu-nero~ зашёл в конференцию
[20:01:19] <rexim> $say 10
[20:01:23] <horta hell> rexim: longedok: я думал, что в размерах среди муравьёв одного вида в /opt именно доработать до моих цодингтимах!
[20:01:33] <rexim> $say 10
[20:01:33] <horta hell> rexim: Я в прошлый раз ты have someone who looks dirty?
[20:01:45] <rexim> ._.
[20:01:46] <rexim> $say 10
[20:01:46] <horta hell> rexim: Редбул с кодом и не очень страшным ником --- это просто у нас клетка с ноутбуком, жара стоит глянуть - поверь, тебе в трукрипте.
[20:02:00] <rexim> .__.
[20:02:01] <rexim> $say 10
[20:02:01] <horta hell> rexim: А как в корстных целях лучшего понимания того, чтобы теперь он его сейчас вероятность?
[20:02:07] <rexim> $say 10
[20:02:07] <horta hell> rexim: Да ты такой blackoverlord? Я думал QtCreator это штрихи именно для нас...
[20:02:18] <rexim> $say 10
[20:02:18] <horta hell> rexim: Где все? значит для каждого сорта есть вероятность, что ты все доклады по плюсам ассистанта достаточно.
[20:02:24] <rexim> $say 10
[20:02:25] <horta hell> rexim: Requested phrase was not found, sorry.
[20:02:26] <rexim> $say 10
[20:02:27] <horta hell> rexim: ForNeVeR, в няшату под него хорошие знания геометрии. Потом ИИ, алгоритмы на минут до сих пор.
[20:02:35] <rexim> $say 10
[20:02:35] <horta hell> rexim: На чем пакеты-то хоть раз разбанить. Может он там тебя такой рандом: если есть вероятность, что делать. Мне не уйти в универе сейчас узнал. =(
[20:02:44] <rexim> $say 10
[20:02:45] <horta hell> rexim: .ban stasikus@jabber.ru|за утверждение, что когда именно г-ну Степанову пришла белочка.
[20:03:04] <rexim> > когда именно г-ну Степанову пришла белочка
И он придумал STL.
[20:27:56] <ktt9> ForNeVeR, а какие вообще в х-ле есть способы проверить, бесконечен ли список?
[20:28:38] m4n71k0r зашёл в конференцию
[20:52:34] ktt9 вышел из конференции
[20:53:05] ktt9 зашёл в конференцию
[20:56:18] emu-nero~ вышел из конференции
[20:59:35] ktt9 вышел из конференции
[21:00:00] ktt9 зашёл в конференцию
[21:12:04] Myp зашёл в конференцию
[21:15:16] Myp вышел из конференции
[21:15:27] Myp зашёл в конференцию
[21:21:38] eaeee вышел из конференции
[21:29:01] rexim вышел из конференции
[21:31:58] eaeee зашёл в конференцию
[21:53:38] emu-nero~ зашёл в конференцию
[21:53:48] <moonhawk> ktt9: Обратись к последнему элементу. :-)
[21:56:19] <emu-nero~> или посчитай у него длину в отдельном потоке.
[21:56:33] <emu-nero~> если поток висит больше минуты -- список бесконечный
[21:58:41] <moonhawk> И вообще, разве это не противоречит Halting problem?
[22:01:00] emu-nero~ вышел из конференции
[22:40:08] Serpentes вышел из конференции
[22:53:38] ktt9 вышел из конференции: This participant is kicked from the room because he sent an error presence: remote-server-not-found
[23:01:47] moonhawk вышел из конференции
[23:01:48] moonhawk зашёл в конференцию
[23:24:07] v_oron зашёл в конференцию
[23:36:42] v_oron вышел из конференции
Powered by freQ Powered by Python Valid XHTML 1.0 Transitional Valid CSS!