Alexander
но именно это запретит списку быть бесконечным
Theta
повторяюсь, никто не говорил что реализация строгого списка должна поддерживать бесконечность
Alexander
> Якобы его строго нельзя определить так как заранее он не известен и может быть бесконечен.
Theta
ну... это он уже потом ляпнул. Но... если говорить о конечных строках то можно
Alexander
смотри, ты можешь сделать структуру: let x = repeat' 0 repeat' x = let t = a :> repeat' x in a
Alexander
но вычислить её до WHNF нельзя, т.к. у тебя WHNF = NF
Theta
про whnf непосредственно на собеседовании не говорили однако
Alexander
@odomontois а во всяких камлах и ML же для бесконечных используется термин кодата и косписки?
Alexander
т.е. то, что структуры данных из коробки могут коструктурами быть это чисто особенность haskell
Alexander
строгую конечную структуру организовать конечно же можно
Oleg
@odomontois а во всяких камлах и ML же для бесконечных используется термин кодата и косписки?
не знаток камлов, но вроде обычно говорят "stream" и "lazy sequences, lazy structure"
Alexander
это тоже
Oleg
co- это для теортипных любителей
Oleg
Потому что если ты не собираешься что-то доказывать, для тебя это ну просто версия данных, по которой можно с O(1) памяти пройтись
Theta
строгую конечную структуру организовать конечно же можно
Ну да... и либо он намеренно коряво излагал мысли и задавал вопросы, произнося английские слова так что не разберёшь (нормальную речь я хорошо понимаю), либо...
Theta
WHNF это например (1 + 1, 2 + 2). Соответственно, если бы кортеж был строгий, программа тутже, до возвращения кортежа, вычислила бы 1+1 и 2+2, и затем вернула конечный результат в NF... ну и... всё реализуемо вроде
Alexander
если у тебя какой-то матчинг и т.п., то ты делаешь вычисление до WHNF (даже с irrefutable patterns)
Alexander
т.е. так язык работает
Alexander
если у тебя структура строгая, то WNHF = NF
Alexander
например strict list, (# ,#) и прочие звери
Theta
если у тебя какой-то матчинг и т.п., то ты делаешь вычисление до WHNF (даже с irrefutable patterns)
про матчинг не говорили. Но... разве bangpatterns не позволяет произвести сначала вычисление аргумента, а затем его матчинг?
Alexander
я не понимаю тебя
Alexander
чтобы вычислить агрумент нужно вычислить конструктор сначала (или irrefutable pattern)
Alexander
бенг говорит, что агрумент вычисляется тогда же когда вычисляется конструктор
Theta
ну допустим foo a! = a*a
Theta
ну?
Theta
и?
Alexander
и это мешает бесконечному строгому списку вычислиться
Theta
ОПЯТЬ ТЫ ПРО БЕСКОНЕЧНЫЕ СПИСКИ...
Theta
ну блиин)
Theta
причём тут они?...
Alexander
при том, что они очевидно были частью вопроса
Oleg
Сколько собеседований уже провалил @ThetaFelius в этом чате?
Alexander
про то, можно ли сделать конечный строгий список - можно конечно
Alexander
ну так об этом надо было бы и сказать им, что извините не понял что мы говорим о списках совпадающих по свойствам со списками в haskell
Theta
Сколько собеседований уже провалил @ThetaFelius в этом чате?
не провалил, всего лишь скосили зп с 70 до 50 😆
Theta
По-моему очевидно что строгих бесконечных списков нет O_o
Theta
я имею в виду стандартный прелюдный list
Theta
Ты про это чтоли? data Stream a = Cons a (Stream a) А он строгий?
Oleg
Вот тот tie knot, если я правильно понял, о чём котором говорили посоны выше , легко делается с мутабельной структурой. Циклические связные списки в C не редкость
Theta
ну про c мы не говорили...
Oleg
Я тоже не говорил
Oleg
Я говорил, что бывают строгие бесконечные
Oleg
Ты сам прыгаешь с определения на определение. То говоришь о какой-то общности, то о чём-то очень конкретном, в ракурсе чего твои предыдущие замечания теряют смысл
Theta
извини, но ты говоришь какие-то странные вещи... думаю админ ответил вполне адекватно.
Theta
про общности я не говорил. с определения на определение не прыгаю
Alexander
для узла нужна или ленивость или мутабельность вроде как
Theta
для узла нужна или ленивость или мутабельность вроде как
Можно для отстающих, о каком узле ты говоришь?
Alexander
tying the knot
Alexander
техника
Alexander
позволила бы сделать циклическую строгую структуру
Alexander
тогда бы она была и строгая и бесконечная
Theta
а... понятно. прочёл. очевидно. Ну ясен хрен не стоит ждать этого от строгих списков
Theta
или можно?
Theta
O_o
Theta
а... вкурил
Alexander
не думаю, правда, что на собеседовании про это говорили
Theta
с другой стороны, будучи строгим, такое шаманство должно уйти в бесконечную рекурсию разве нет?
Alexander
кстати с ненулевой вероятностью собеседовавшие могут быть тут
Alexander
в строгом иммутабельном языке - такое шаманство невозможно
Theta
чёт тот тип сливается. отвечает вопросами на вопросы O_o
Alexander
т.е. или мутабельность или её урезанную форму надо иметь
Alexander
если интерью не поставлены на поток, то можно не удивляться что сложно с формулировками
Alexander
когда я общался с интернами, то первые разговоры например очень сложно шли
Theta
т.е. или мутабельность или её урезанную форму надо иметь
типа как в екселе, вычислять первые N циклов (задаётся в настройках) мутабельно и дать ответ?)
Alexander
не, если ты не показываешь структуру целиком то вычислять нечего
Alexander
у тебя же все в WHNF будет
Alexander
т.е. будет тот самый linked list
Theta
А, ты вон про что...
Theta
мдя. ладно. Щас тоже не спал нихрена тут не сообразил сразу)
Theta
когда я общался с интернами, то первые разговоры например очень сложно шли
вот и мне не понятно, намеренно ли это было или само так вышло? Принцип ещё в бойцовском клубе был изложен: хочешь дешёвого но хорошего сотрудника? Унизь новичка...
Theta
ну может здесь и не оно)
Theta
ок
Alexander
не знаю
Alexander
не хочу на людей наговаривать