
A64m
12.07.2018
14:10:24
это на мой вкус мучительно слишком
когда я делал многострочный репл для себя, я просто делал переключение в многострочный режим энтером в пустой строке и выходил из него двумя энтерами

Andrei
12.07.2018
14:11:39
красиво

A64m
12.07.2018
14:11:40
а контрол энтер давить в 99% случаев как-то не весело

Google

Oleg
12.07.2018
14:12:12
Я когда-то юзал IHaskell для jupyter

Dmitry
12.07.2018
14:12:25
И как?
Сравнимо с Python?

kana
12.07.2018
14:12:32

Oleg
12.07.2018
14:12:34
Он, конечно, отстаёт и не всегда билдится, но в остальном приятно

Dmitry
12.07.2018
14:12:35
По библиотекам?

Oleg
12.07.2018
14:12:51
По библиотекам?
Я его юзал вместо репла
А не вместо пайтона

Dmitry
12.07.2018
14:13:05
Сейчас, пример приведу
А
Что-нить типа такого можно в IHaskell нарисовать?
https://i.vas3k.ru/7e0.jpg

Google

Dmitry
12.07.2018
14:13:53
Или такое
https://i.vas3k.ru/7e1.png
?
Я не в плане потроллить, а в плане узнать возможности. Есть такое?

A64m
12.07.2018
14:14:32
мне жупитер (и его не сильно успешный клон) никогда особо не нравились

Oleg
12.07.2018
14:14:54
поэтому всё, что можно пыхтоном, можно чем-угодно другим

A64m
12.07.2018
14:15:22
но интерфейс а-ля математика для хаскеля хотелось бы иметь, конечно

Dmitry
12.07.2018
14:15:24
Ну я плохо знаю ядра, просто мне кажется, что вон те карты рисуются какими-то питоновскими либами
Т.е. просто так их к IHaskell не подключить
Или можно?

Oleg
12.07.2018
14:15:48
Всё остальноё работает через специальный вывод в HTML, который в IHaskell конфигурируется вполне
Было бы желание

Dmitry
12.07.2018
14:16:48

Hot
12.07.2018
14:17:08
ЭПИК!
Спасибо, мне нравится.
Что делает?
fix откуда?

Jey
12.07.2018
14:17:53

Google

Hot
12.07.2018
14:17:54
В GHCI с Prelude не нашёлся.

Dmitry
12.07.2018
14:18:19

Hot
12.07.2018
14:18:29
Ок

Jey
12.07.2018
14:18:29
Курицу на песочек выпустить, отпечатки лап в OCR и конопелятору скормить
Эффект, глядишь, тот же будет

Hot
12.07.2018
14:18:47

Dmitry
12.07.2018
14:18:58
Ну, судя по выдаче гугла, хотя бы графики можно рисовать:
http://abailly.github.io/images/ihaskell.png

Dmitry
12.07.2018
14:20:52

Hot
12.07.2018
14:21:03
Хм, норм.

Aleksey
12.07.2018
14:21:48

Dmitry
12.07.2018
14:22:10
Ну вот я про это и спрашиваю

Dmitry
12.07.2018
14:22:32
Получается, что надо либы из питона тащщить

Aleksey
12.07.2018
14:23:01
Нельзя взять и "утащить matplotlib из питона"

Hot
12.07.2018
14:23:20
Действительно.

Aleksey
12.07.2018
14:23:41
Есть либа, которая вызвает питон под капотом и позволяет пользовать matplotlib :)
Но scipy, numpy не утащишь

Dmitry
12.07.2018
14:23:57
Ну хоть так :)

shadowjack
12.07.2018
14:28:12
Есть SubHask, но...

Hot
12.07.2018
14:57:52
А весь список из заранее известного числа элементов можно паттерн матчингом разобрать?

Google

Hot
12.07.2018
14:59:16
О, получилось, спс :)

Denis
12.07.2018
15:04:48

Hot
12.07.2018
15:05:08
Да я просто кортеж ставил, а не список.
Круглые скобки.
Вот и не компилилось.

Denis
12.07.2018
15:05:33

Admin
ERROR: S client not available

Hot
12.07.2018
15:05:55
В следующий раз так и сделаю тогда.
Хотя смысла особого не вижу, если честно.

Alexander
12.07.2018
18:22:23
а какие есть стандартные общеязыковые бенчмарки для сетевых либ?
что-нибудь простое, но чем можно реализацию померять адекватно?

Kirill
12.07.2018
18:27:36
сетевое, но не http?

Lev
12.07.2018
18:51:51
tcpkali

Alexander
12.07.2018
19:15:13
http жирно, нужно протокол релизовывать
а какой-нибудь броадкаст и много клиентов уже нормально

Index
12.07.2018
20:40:10
какой же Хаскель дурной язык
(у меня настроение пожаловаться)
зачем вот иметь отдельно
data Pair a b = P a b
data Product f g x = Product (f x) (g x)
class (c1, c2) => CPair c1 c2
instance (c1, c2) => CPair c1 c2
class (c1 x, c2 x) => CProduct c1 c2 x
instance (c1 x, c2 x) => CProduct c1 c2 x
Я еще не придумал, как это должно быть одной и той же штукой, но уверен, что должно.

Kaidax
12.07.2018
21:11:11
Все придумано до нас же
data Pair f a b = Pair (Apply f a) (Apply f b)
type family Apply (f :: k) a where
Apply Id a = a
Apply (f :: Type -> Type) a = f a
data Id
_12 :: Pair Id Int Int
_12 = Pair 1 2
ls12 :: Pair [] Int Int
ls12 = Pair [1, 2, 3] [9, 8, 7]

Index
12.07.2018
21:15:59
Ок, с дефункционализацией identity-функтора нормально. Хотя не нравится, что приходится дефункционализировать, жаль нельзя прямо Pair (\x -> x) написать.
Теперь не хватает constraintiness-полиморфизма, который я когда-то предлагал, а мне сказали чтобы не приставал
в каком-то ghc proposal это было

Google

Index
12.07.2018
21:18:41
Нет, погоди, это ведь не то же самое, какой-то жестокий обман
У меня ведь f, g :: Type -> Type и x :: Type, а не f :: Type -> Type и a, b :: Type
Хотя в общем-то понятно, как выразить одно через другое
data With x
type instance Apply (With x) f = f x
Pair (With x) f g
Можно обобщить это еще на N элементов, получится vinyl

Алексей Ayaye :)
13.07.2018
13:38:18
а бывает zipWith с дефолтным значением, которое применяется вместо недостающих элементов короткого списка? или это правильнее по-другому делать?

Kirill
13.07.2018
13:40:01
дак прицепить repeat def к короткому?
или неизвестно который короткий?

A64m
13.07.2018
13:41:54
если не известно какой короткий можно к обоим прицепить и takeWhile пока одни дефолтные не полезут

Denis
13.07.2018
13:44:22
есть align http://hackage.haskell.org/package/these-0.7.4/docs/Data-Align.html

shadowjack
13.07.2018
13:45:06
http://hackage.haskell.org/package/list-zip-def-0.1.0.1/docs/Data-List-Zip.html

A64m
13.07.2018
13:46:38
ну если не хочется по дефолтным определять и как-то их для нормального управления выделять вроде Maybe там, то можно забирать нужное число просто

shadowjack
13.07.2018
13:49:29
Уж проще рекурсивно написать если пакет из hackage религия использовать не позволяет

A64m
13.07.2018
13:51:45
ну, в такм случае может и так, но я бы не переоценивал легкость написания и доведения до работоспособного состояния рекурсивной лапши

Ilya
13.07.2018
13:53:04
Тут что-то очень похоже на Alternative, надо только придумать для какого типа