Home
Objective Caml
ocaml@conference.jabber.ru
Четверг, 28 января 2010< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Верблюды грязи не боятся! | release crap | voice по запросу | ocaml мёртв, move on
Конфигурация комнаты

GMT+3
[00:38:06] gds вышел(а) из комнаты
[01:43:53] ygrek вышел(а) из комнаты
[01:57:14] digital_curse вышел(а) из комнаты
[01:57:27] digital_curse вошёл(а) в комнату
[03:06:26] daapp вошёл(а) в комнату
[03:32:40] ExplicitCall вышел(а) из комнаты
[03:57:38] ExplicitCall вошёл(а) в комнату
[07:54:53] iNode вошёл(а) в комнату
[08:10:31] geovit вошёл(а) в комнату
[09:02:54] gds вошёл(а) в комнату
[09:04:52] geovit вышел(а) из комнаты
[09:44:19] geovit вошёл(а) в комнату
[09:44:31] ygrek вошёл(а) в комнату
[09:44:44] ygrek вышел(а) из комнаты
[10:02:39] serp256 вошёл(а) в комнату
[10:13:58] Kakadu вошёл(а) в комнату
[10:41:13] sceptic вышел(а) из комнаты
[10:53:23] sceptic вошёл(а) в комнату
[11:28:10] f[x] вошёл(а) в комнату
[11:33:25] ermine вошёл(а) в комнату
[12:00:54] Yakov Zaytsev вошёл(а) в комнату
[12:01:48] Kakadu вышел(а) из комнаты
[12:27:22] ExplicitCall вышел(а) из комнаты
[13:10:40] Mon вышел(а) из комнаты
[13:10:49] Mon вошёл(а) в комнату
[13:24:28] gds вышел(а) из комнаты: Replaced by new connection
[13:24:29] gds вошёл(а) в комнату
[13:38:32] Typhon вошёл(а) в комнату
[13:59:04] sceptic вышел(а) из комнаты
[14:03:18] Typhon вышел(а) из комнаты
[14:17:55] sceptic вошёл(а) в комнату
[14:18:46] sceptic вышел(а) из комнаты
[14:18:51] sceptic вошёл(а) в комнату
[14:22:04] Yakov Zaytsev вышел(а) из комнаты
[14:28:52] <ermine> а есть разница между type a = {str: string} и type a = {mutable str:string} ?
[14:29:13] <ermine> отвечает gds
[14:29:19] <gds> да :)
[14:29:32] <ermine> а какая разница?
[14:29:47] <ermine> казалось бы, пофиг как модифицировать
[14:30:01] <gds> в первом случае саму строку не поменять -- она будет той же длины. и на шаринг влияет тоже.
[14:30:08] <ermine> с помощью blit, str.[i] и пр
[14:30:40] <ermine> вот длина - да, не поменять
[14:31:17] <gds> вообще, если строки используются по прямому назначению, не стоит менять содержимое строк, лучше использовать их как иммутабельные.
[14:32:00] <ermine> я вчера еще думала, как копировать stream
[14:32:09] <ermine> чтобы не расшаривать
[14:36:12] <gds> в самом общем случае -- никак. В случае детерминированного stream'а -- создать новые стримы, которые будут при нужде брать элементы исходного стрима и сохранять их в памяти для того, чтобы все копии брали одинаковые элементы в одинаковом порядке. Но имхо изврат. Как-то по-другому может лучше решить?
[14:36:22] daapp вышел(а) из комнаты
[14:38:36] <ermine> для обеспечения backtracking это звучит жутко
[14:39:28] <ermine> проще сделать свой стрим с немутабельными элементами
[14:40:22] <gds> ну а попробуй скопировать какой-нибудь Stream.from (fun _ -> Random.int 12345) по-другому.
А так -- да, если ограничить задачу, то всё делается.
[15:03:54] <f[x]> для backtracking'а надо брать немутабельные стримы :) в camlp5 есть
[15:06:28] <ermine> ты ж сказал, что caml5 немоден
[15:09:26] <f[x]> ermine: а это планета такая, здесь всё шиворот-навыворот
[15:10:45] <ermine> да я сварганю свой стрим, как обычно
[15:11:06] <gds> немутабельные стримы -- это такие ленивые списки?
[15:11:53] <f[x]> видимо, я не в курсе
[15:12:24] <ermine> только вот я придумала нетривиальную задачу - для backtrackinga надо сохранять вынутые элементы из стрима в стриме же, если элементы генерирует функция
[15:13:14] <ermine> gds: в нынешних стримах каунтер мутабельный
[15:25:52] <gds> не только каунтер мутабельный, но и сам стрим не сохраняет предыдущие элементы (за что я его использую сильно чаще ленивых списков).
[15:28:33] <ermine> да, там через obj махинации идут
[15:31:09] <f[x]> тем и ценнен
[15:39:26] <ermine> как учебный пример махинаций?
[15:40:18] <gds> как полезная штука, работоспособность которой, несмотря на Obj, гарантируют сами хвранцузы.
[15:41:12] sceptic вышел(а) из комнаты
[15:42:50] <f[x]> constant space, потому и stream
[15:44:50] <ermine> пчу это constant space?
[15:45:02] <ermine> там ж есть SCons конструкция
[15:45:16] <ermine> имитация списка
[15:46:02] <ermine> при желании можно сожрать всю память :)
[15:48:29] <gds> constant space -- потому что в общем случае при выборке N элементов из стрима его объём не обязан расти согласно O(N), тогда как в случае ленивого списка, голова которого вполне может быть доступным программе значением, используемая память таки растёт.
SCons там есть, но не по вашу честь :)
[16:38:50] sceptic вошёл(а) в комнату
[16:54:22] geovit вышел(а) из комнаты
[17:07:00] f[x] слепил debian пакет для ocaml-event
[17:15:42] iNode вышел(а) из комнаты
[17:30:14] gds вышел(а) из комнаты
[17:37:13] Kakadu вошёл(а) в комнату
[18:04:07] sceptic вышел(а) из комнаты
[18:12:46] <Kakadu> куда сейчас надо смотреть, чтобы делать консольный интерфес? Я тут нашел mlcurses, может ещё чтонить ?
[18:59:07] gds вошёл(а) в комнату
[19:19:11] sceptic вошёл(а) в комнату
[19:27:02] <f[x]> Kakadu: print_endline и input_line ? :)
[19:28:05] <Kakadu> =)
[19:32:56] allien999 вошёл(а) в комнату
[19:39:31] allien999 вышел(а) из комнаты
[19:40:40] <Kakadu> положим я динамически подлинковываю либу. Можно как-нить посмотреть что там реализованы функции, которые мне нужны. А то я смотрю на пример для dynlink и там это как-то криво выглядит: подключаемый модуль должен записать функции в иное место. известное и ему и большой программе. чтобы она могла их юзать...
[19:49:45] <f[x]> динамическую либу cmxs или so?
[19:51:08] <f[x]> а почему dynlink так сделан я не знаю
[19:55:14] serp256 вышел(а) из комнаты
[20:05:37] sceptic вышел(а) из комнаты
[20:07:27] ExplicitCall вошёл(а) в комнату
[20:16:10] f[x] вышел(а) из комнаты
[20:31:41] sceptic вошёл(а) в комнату
[20:43:22] gds вышел(а) из комнаты
[20:47:10] <Kakadu> Я пока не решил какую либу буду подгружать
[20:50:06] <Kakadu> там в примерах просто сmо подгружают. пока это научусь
[21:21:12] sceptic вышел(а) из комнаты
[21:23:46] sceptic вошёл(а) в комнату
[21:23:51] gds вошёл(а) в комнату
[21:28:29] sceptic вышел(а) из комнаты
[21:29:16] sceptic вошёл(а) в комнату
[21:29:57] sceptic вышел(а) из комнаты: offline
[21:33:16] ExplicitCall вышел(а) из комнаты
[21:34:02] ExplicitCall вошёл(а) в комнату
[21:41:22] gds вышел(а) из комнаты: Replaced by new connection
[21:41:23] gds вошёл(а) в комнату
[21:50:23] Kakadu вышел(а) из комнаты: Replaced by new connection
[21:50:23] Kakadu вошёл(а) в комнату
[22:04:27] abiogenesis вошёл(а) в комнату
[22:04:44] abiogenesis вышел(а) из комнаты
[22:07:16] <Kakadu> http://gdsfh.dyndns.org/kamlo/RevisedSyntax
по-видимому опечатка: вместо [x::[y::[z::t]]] надо [x::[y::[z::[t]]]]
[22:09:11] <Kakadu> в соседнем вроде то же самое
[22:18:02] ygrek вошёл(а) в комнату
[22:34:49] <ygrek> Kakadu: там нет опечатки
[22:37:13] <Kakadu> а почему ругается тогда?
[22:38:37] <Kakadu> # [x::[y::[z::t]]];
Error: This expression has type int but an expression was expected of type
list int
[22:39:01] <ygrek> это очевидно не весь код
[22:41:18] serp256 вошёл(а) в комнату
[22:42:28] <ygrek> # value l = [1;2;3];
value l : list int = [1; 2; 3]
# [4::[5::[6::l]]];
- : list int = [4; 5; 6; 1; 2; 3]
[22:46:22] <Kakadu> ладно, я не прав
[22:50:12] michael.holub вошёл(а) в комнату
[23:04:03] gds вышел(а) из комнаты: Replaced by new connection
[23:04:04] gds вошёл(а) в комнату
[23:10:37] ermine вышел(а) из комнаты
[23:22:08] Kakadu вышел(а) из комнаты
[23:35:20] michael.holub вышел(а) из комнаты
[23:40:33] <ygrek> ссылка для грамотной травли младших родственников --> http://rsdn.ru/forum/decl/3404219.flat.aspx#3404219
[23:51:56] sceptic вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!