Danil
Блядб
Danil
Говорила мне мама
Danil
Не лезь в функциональщину
Mikhail
пиздуй на завод
Mikhail
ору
Ilya
Это не хаскель, и не функциональщина
Ilya
Это любой сишник или питонист должен уметь
Ilya
Вложенные ифы
Mikhail
ну вообще грят на заводе с завязанными руками и глазами тоже сложно
Danil
Вложенные ифы
Так я понял как надо, я думал через иф элс нельяз
Ilya
Так я понял как надо, я думал через иф элс нельяз
Сделай одним выражением короче, и присылай что получится
Ilya
Чтобы работало на любых входных данных правильно
Danil
Mikhailъ⃞
атлишна
Ilya
Да, выглядит правильно
Danil
Но длч разных переменных мне же придётся писать его поновой
Danil
По новой*
Danil
Меняя переменную а на другую
Danil
Без написания функции не обойтись?
Ilya
Скоро дойдешь до функции
Mikhailъ⃞
Но длч разных переменных мне же придётся писать его поновой
ну если не триггериться на слово "переменная", то типа да поэтому смотри суперпобыстрому как писать функции listContainsOnlyOneItem? list = ...
Mikhailъ⃞
и ... уже какоенибудь выражение, зависящее от list
Mikhailъ⃞
(а переменных тут якобы нет, но тебя уже наверное этим пугали)
Ilya
Без написания функции не обойтись?
Просто напиши let f a = if not(null a) then null(tail a) else False И позже вызывай как f a
Ilya
В новых версиях GHCi можно и без let
Oleg
В новых версиях GHCi можно и без if
Ilya
Это правда
Ilya
Я так понял, у него нет &&
Danil
Нет есть
Danil
Это прошел
Ilya
Тогда да, используй && между этими двумя проверками
Danil
Всем спасибо
Ilya
👍
Danil
Я так понял вместо циклов у нас тут рекурсия?
Ilya
Пока можешь считать, что да:)
Mikhail
Когда ЛЕНЬ обьяснять
Mikhail
Ilya
Когда ЛЕНЬ обьяснять
Просто слишком общий вопрос
Зигохистоморфный
https://github.com/haskell-stdio/stdio
Зигохистоморфный
https://github.com/haskell-stdio/stdio/blob/master/docs/libuv%20based%20IO%20manager.pdf
A64m
сейчас читаю в твиттере, как автор программы для подсчета строк кода на го объясняет, почему она тормозит на ноутбуке (гц мало 2 ядра, вот было бы 8 все было бы нормально)
Aleksei (astynax)
Может там как-то сложно считаются строки?
A64m
да сборщик просто плохо подходит для написания программ "пакетной обработки", потоковая производительность низкая, а от коротких пауз толку нет
A64m
сборщик сабжа как раз наоборот под такое заточен
Vladislav
Поэтому Pusher его невзлюбили
Vladislav
Или как их там
Алексей
сейчас читаю в твиттере, как автор программы для подсчета строк кода на го объясняет, почему она тормозит на ноутбуке (гц мало 2 ядра, вот было бы 8 все было бы нормально)
У меня есть такое подозрение, что у го просто сборщик мусора говно. Либо делалася по заданию типа "минимизируем паузы любой ценой, а на все остальные показатели - плевать"
A64m
го просто язык из 60-х, тогда еще сборщики с поколениями не изобрели
Алексей
скажите кто-нибудь создателям го, что сейчас 2018 год
Алексей
И вообще пускай делают как в джаве: несколько сборщиков с возможностью менять их при компиляции.
A64m
Дайте ссылку посмеяться
https://twitter.com/boyter/status/1029943280350314496
Алексей
в Хаскеле так уже сделали?
вот не знаю кстати, мне вообще чёт кажется, что в хаселе можно много чего на стеке можно выделить, или подсчётом ссылок освободить
Алексей
хотя может и нет, ленивость и замыкания могут мешать такому
A64m
в Хаскеле так уже сделали?
да, там можно сборщик выбирать (между копирующим и перемещающим), правда такого, который небольшие паузы обеспечивает среди них нет
A64m
чуть менее чем все. фя же
A64m
значит рекурсии полно
Алексей
чёт я туплю, как рекурсия зацикливает сами данные?
Cheese
ones = 1 : ones
A64m
f = 0 : 1 : zipWith (+) f (tail f) > f !! 2 производит вот такое https://www.haskell.org/communities/05-2015/html/fib.jpg
Зигохистоморфный
кстати в книге beginning haskell очень информативно про thunks в схемах и все такое
Алексей
Хм, интересно, а если функциональный язык без ленивости (и без thunk), то там как-то можно будет сделать циклические ссылки?
A64m
> функциональный язык без ленивости
Зигохистоморфный
@A64m_qb0 видел кстати их попытки?) https://github.com/natefaubion/purescript-call-by-name
A64m
видел только ссылку в твиттере, в код не заглядывал еще
Евгений
Кстати зацикливание данных ещё не означает, что нельзя без GC работать. Для такой невозможности нужна именно тьюринг-полнота зацикливания, то есть возможность построения термов, не имеющих даже слабой нормальной формы. То есть убрать GC из какой-нибудь агды в теории можно
Ilya
a66ath
В ATS есть GC?
Зигохистоморфный
опять же lazy
ну а что такое lazy? Unit -> a