Home
Objective Caml
ocaml@conference.jabber.ru
Вторник, 25 июня 2013< ^ >
f[x] установил(а) тему: OCaml / ОКэмл / Камль -- http://ocaml.org/ | Камло - http://camlunity.ru/ | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв и тормозит, move on | stdlib only? - ССЗБ | Fight FUD with fire | Мойте руки перед чатом | KEEP CAML AND CURRY ON | F#, Coq - де-факто онтопик
Конфигурация комнаты
Участники комнаты

GMT+4
[00:29:50] Typhon вошёл(а) в комнату
[00:35:51] Kakadu вышел(а) из комнаты
[00:38:09] UncleVasya вышел(а) из комнаты
[01:05:16] tilarids вышел(а) из комнаты
[01:15:43] Typhon вышел(а) из комнаты
[01:50:51] bobry вошёл(а) в комнату
[01:51:27] <bobry> подскажите пожалуйста, что я не так делаю с классами, что у меня type variables unbound http://paste.in.ua/8394/
[01:53:12] <bobry> интересно почему тип у ?rng стирается
[02:13:27] bobry вышел(а) из комнаты
[02:47:12] komar вышел(а) из комнаты: Replaced by new connection
[02:47:12] komar вошёл(а) в комнату
[07:09:15] f[x] вошёл(а) в комнату
[07:16:23] <f[x]> bobry: method virtual generate : ?rng:Rng.t -> 'a
[07:16:38] <f[x]> метод виртуальный но объявить его всё равно надо
[07:16:47] <f[x]> интуитивная подсказка - mli файла может и не быть
[07:17:20] <f[x]> и даже если он есть - товарищ, помни! как используется сигнатура в камле - для сокрытия и/или сужения типа только лишь
[07:17:39] <f[x]> т.е. сначала вычисляется значение, а потом к нему прикладывается сигнатура
[07:18:02] <f[x]> я к тому что про виртуальный метод компилеру узнать неоткуда было, в сигнатуру он не смотрит когда вычисляет тело выражения
[07:18:31] <f[x]> > bobry: method virtual generate : ?rng:Rng.t -> 'a
в смысле это в .ml файл добавить надо
[08:25:25] avkarpich вошёл(а) в комнату
[08:59:44] f[x] вышел(а) из комнаты
[09:05:17] bobry вошёл(а) в комнату
[09:17:22] <bobry> f[x]: понял, спасибо
[09:18:19] bobry вышел(а) из комнаты
[09:30:49] zinid вошёл(а) в комнату
[09:50:08] bobry вошёл(а) в комнату
[09:54:06] f[x] вошёл(а) в комнату
[09:57:15] bobry вышел(а) из комнаты
[10:18:11] f[x] вышел(а) из комнаты
[10:19:39] ermine вошёл(а) в комнату
[10:27:12] tilarids вошёл(а) в комнату
[10:46:12] ftrvxmtrx вышел(а) из комнаты
[10:52:17] tilarids вышел(а) из комнаты: Machine going to sleep
[11:27:19] UncleVasya вошёл(а) в комнату
[11:30:58] tilarids вошёл(а) в комнату
[11:38:34] ftrvxmtrx вошёл(а) в комнату
[12:00:57] bobry вошёл(а) в комнату
[12:01:07] <bobry> а класс-методы в камло никак нельзя сделать?
[12:12:28] Typhon вошёл(а) в комнату
[12:24:56] f[x] вошёл(а) в комнату
[12:25:24] <f[x]> wut?
[12:26:19] <ADEpt> bobry: static methods, что ли? А нафига? В смысле, чего не хватает в том, что есть?
[12:30:51] <bobry> ADEpt: есть у меня класс для нормального распределения, хочется в scope класса заиметь стандартное нормальное в виде val standard = normal ~mean:0. ~sd:1.
[12:43:39] <avkarpich> bobry: а что ты такое пишешь?
[12:44:58] UncleVasya вышел(а) из комнаты
[13:05:51] <bobry> avkarpich: всякие околостатистические штуки для камла
[13:05:58] <bobry> https://github.com/superbobry/pareto
[13:07:37] <aleksey> а есть gsl биндинги для ocaml
[13:07:56] <bobry> есть ага, я как раз их и пользую в кач-ве основы
[13:15:50] <ADEpt> bobry: так а class normal_dist ... = object (self: 'self) method normal = ...; method standard = self#normal ... end это не то, что ты хочешь?
[13:42:16] <bobry> ADEpt: да, так сработает, спасибо :)
[13:43:00] <bobry> жалко, что для этого нет поддержки со стороны языка
[13:51:01] <bobry> а можно как нибудь заинклюдить интерфейс в сигнатуру класса?
[13:57:10] <f[x]> а мсье того, подкованный, в этом самом вопросе
[14:00:33] Kakadu вошёл(а) в комнату
[14:15:58] <Kakadu> bobry: там у Marcus Mottl в мэйллисте та же самая печаль с подстановкой типа, что у тебя была
[14:19:28] <bobry> вижу ага, интересно что ему ответят
[14:19:39] <bobry> f[x]: вопрос про инклюды совсем глупый что ли?
[14:20:32] <f[x]> ну вообщем вроде да
[14:20:37] <f[x]> как это будет выглядеть?
[14:21:01] <f[x]> класс состоит из методов и инстанс-переменных
[14:21:07] <f[x]> но не из типов
[14:21:09] <f[x]> правильно?
[14:21:13] <bobry> ну я хочу что-то вроде implements
[14:21:28] <f[x]> это актуально в номинальном ооп
[14:21:43] <f[x]> а тут структурное
[14:21:52] <f[x]> you gonna change your mind!
[14:22:14] <f[x]> т.е. постольку поскольку кастуется к нужному интерфейсу - постольку и implements
[14:24:19] <f[x]> может я неправильно понимаю что тебе надо
[14:24:25] <f[x]> что делает implements?
[14:24:26] <bobry> так а как можно избежать копипаста в сигнатурах?
[14:24:40] <f[x]> проверяет имплементит ли класс такой-то интерфейс?
[14:24:47] <bobry> у меня есть куча классов реализующих одинаковый набор методов
[14:24:57] <bobry> хочется компактно записывать этот факт
[14:25:08] <bobry> implements говорит, что класс реализует такой то интерфейс
[14:25:22] <bobry> тобишь имеет методы a, b, c, описанные в указанном интерфейсе
[14:25:35] <f[x]> можно наклепать методов которые будут кастовать в эти интерфейсы - это будет как пруф того что класс имплементит такой-то интерфейс
[14:25:44] <f[x]> но не как сокращение записи
[14:26:02] <bobry> тобишь в .mli всё равно надо явно всё указывать?
[14:26:10] <bobry> и никакого способа обойти это нет?
[14:26:13] <f[x]> ну да
[14:26:19] <f[x]> можно mli не писать просто
[14:26:32] <bobry> понятно, спасибо
[14:27:19] <f[x]> есть ещё запись #someclass
[14:27:28] <f[x]> но можно ли их комбинировать?
[14:40:26] tilarids вышел(а) из комнаты: Replaced by new connection
[14:40:31] tilarids вошёл(а) в комнату
[15:01:46] avkarpich вышел(а) из комнаты
[15:27:44] tilarids вышел(а) из комнаты
[15:28:00] tilarids вошёл(а) в комнату
[16:10:44] bobry вышел(а) из комнаты
[17:07:10] f[x] вышел(а) из комнаты
[17:18:08] Kakadu вышел(а) из комнаты: Logged out
[17:18:11] Kakadu вошёл(а) в комнату
[17:20:49] letrec вошёл(а) в комнату
[18:42:56] f[x] вошёл(а) в комнату
[19:17:45] ftrvxmtrx вышел(а) из комнаты
[19:33:16] Kakadu вышел(а) из комнаты: Logged out
[19:53:04] f[x] вышел(а) из комнаты
[20:09:41] letrec вышел(а) из комнаты
[20:21:28] komar вышел(а) из комнаты: Replaced by new connection
[20:21:29] komar вошёл(а) в комнату
[20:47:43] tilarids вышел(а) из комнаты: Machine going to sleep
[20:52:19] <gds> > есть ещё запись #someclass
> но можно ли их комбинировать?
можно точно, это помню, а вот и код:
class type ta = object method a : unit end;;
class type tb = object method b : bool end;;
class tabc = object (( _ : #ta) : #tb) method a = () method b = true method c = 123 end;;
[21:39:59] zinid вышел(а) из комнаты
[21:52:16] tilarids вошёл(а) в комнату
[21:56:39] Kakadu вошёл(а) в комнату
[22:20:55] f[x] вошёл(а) в комнату
[22:22:57] <f[x]> о, круто, а в mli файле их разве можно как-то заюзать?
[22:23:07] <f[x]> я попробовал на коленке - не получилось
[22:23:16] <f[x]> (код писал, мануал не читал)
[22:37:06] f[x] вышел(а) из комнаты
[23:02:34] <gds> f[x]: про mli не читал, говно наверное отписал.
А зачем в mli?  Вы же там сошлись, что они не нужны.
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!