@haskellru

Страница 367 из 1551
Мерлин
29.08.2017
15:18:34
Denis
29.08.2017
15:20:37
да, собственно сейчас я это и делаю и постить и собираюсь, но для начала в канал нужны основы, чтобы можно было с нуля его начать читать
https://codewords.recurse.com/issues/three/algebra-and-calculus-of-algebraic-data-types http://chris-taylor.github.io/blog/2013/02/10/the-algebra-of-algebraic-data-types/ http://chris-taylor.github.io/blog/2013/02/11/the-algebra-of-algebraic-data-types-part-ii/ http://chris-taylor.github.io/blog/2013/02/13/the-algebra-of-algebraic-data-types-part-iii/

kana
29.08.2017
15:21:00
благодарю

Denis
29.08.2017
15:21:18
Начало в SICP
просто я вывел Fix на типах тогда показавши что список можно записать по другому

Google
Denis
29.08.2017
15:22:52
@kana_sama ладно побуду в твоем канале пока)

kir
29.08.2017
16:02:48
Есть у кого интресных ресурсов по аппликативным языкам (статей, например) - т.е., по Forth, Joy, Factor?

Denis
29.08.2017
16:06:24
https://soundcloud.com/lambda-cast

kir
29.08.2017
16:07:27
Joy-то как раз аппликативный. На комбинаторах - unlambda :)

Denis
29.08.2017
16:09:13
в вики видел такое https://wiki.haskell.org/Applicative_data-driven_programming

kir
29.08.2017
16:11:04
Благодарю.

Denis
29.08.2017
16:16:56
было что-то у меня в загашниках по joy надо искать

Abbath
29.08.2017
16:29:12
@xgrommx ATTaPL есть

Denis
29.08.2017
16:29:23
где?)

Abbath
29.08.2017
16:30:32
https://www.cis.upenn.edu/~bcpierce/attapl/

Vyacheslav
29.08.2017
16:31:13
@xgrommx ATTaPL есть
ну до TAPL читать смысла особого нет)

Denis
29.08.2017
16:31:14
а где книга?)

Google
Abbath
29.08.2017
16:32:06
Книга на либгене

Denis
29.08.2017
16:33:11
интересно а переводов нет) как тапл

kir
29.08.2017
18:25:25
http://www.hawaga.org.uk/ben/tech/london-hug-acme-smuggler/presentation.html

Denis
29.08.2017
19:48:41
у кого-то есть книга Марлоу на русском?

Vasiliy
29.08.2017
20:12:26
у меня есть, в бумажном виде

Denis
29.08.2017
20:14:53
эх)) отсканируй)

Alexander
29.08.2017
20:15:40
а зачем на русском?

Denis
29.08.2017
20:16:10
надо)

Kit
29.08.2017
20:55:37
правда она уже расклеелась, могу дать

Denis
29.08.2017
21:04:43
как?) я же с Украины

Kit
29.08.2017
21:05:54
эм, ну тогда не могу

Denis
29.08.2017
21:06:58
разве что прислать...

Aleksey
30.08.2017
06:30:23
https://www.litres.ru/saymon-marlou/parallelnoe-i-konkurentnoe-programmirovanie-na-yazyke-haskell-22873018/

420р за отличную книгу - не так много, я считаю

Dmitry
30.08.2017
06:32:08
++

лучшая книга по хаскеллу же.

точно не много.

Aleksey
30.08.2017
06:36:58
Заодно и издательству денег перепадёт. "ДМК Пресс" стоит поддержать - переводят хорошие книги и продают по разумным ценам

Google
Ilya
30.08.2017
07:39:27
Написал небольшой модуль, обобщающий понятие индекса списка (массива). Кроме индексирования с начала (Int) теперь можно указывать в любую точку списка (массива), например в конец или в середину. Новый индекс является инстансом Num, поэтому поддерживает арифметику и неявный каст с инта (fromInteger) => старый код не сломается, если пользоваться моими индексами. Переопределены функции (!!), take, drop, splitAt из Data.List λ> let x = [1..7] λ> x !! 0 1 λ> x !! end 7 λ> x !! (end-3) 4 λ> x !! mid 4 λ> let x = "Hello World!" λ> splitAt end x ("Hello World","!") λ> splitAt (mid+1) x ("Hello W","orld!") λ> splitAt (mid-1) x ("Hello"," World!") Это кому-нибудь интересно? Где стоит это выложить? Могу рассказать немного по-подробнее и показать код, его немного.

Синтаксис x !! end подобен матлабу или джулии, но вместо end можно взять любое другое слово или знак, т.к. это просто синоним

короче такой вот сахарок на уровне типов, а не на уровне макросов

Donat
30.08.2017
07:47:41
Мне интересно, выкладывай

Ilya
30.08.2017
07:48:33
ща, зарегаюсь на гитхабе тогда только, чтобы не файл кидать

Alexander
30.08.2017
07:52:05
x Vector.! (fromIntegral end) что мне скажет?

error или не скомпилируйтс я?

Serghei
30.08.2017
07:53:39
?

Ilya
30.08.2017
07:53:46
какой тип у Vector.! ?

я пока переопределил функции только в Data.List, потом собираюсь переопределить для IArray и MArray

откуда нужно Vector.! импортировать?

Alexander
30.08.2017
07:55:18
Vector a -> Int -> a

в общем что будет если я fromInteger на end натравлю

(просто интересно)

melancholiac
30.08.2017
07:57:57
нормально что выражения вроде (\x y z -> [x,y,z]) <$> (+3) <*> (*2) <*> (/2) только понимаются при помощи ручки и бумажки? это пройдет со временем?

Ilya
30.08.2017
07:58:16
в общем что будет если я fromInteger на end натравлю
ну он говорит Couldn't match expected type ‘Integer’ with actual type ‘Index Int’ правильно будет x Vector.! end но это будет работать, когда я переопределю Vector.! для работы со своим типом

выражение fromInteger end не имеет смысла, вообще говоря

т.е. туда не "зашита" длина какого-то конкретного списка

Alexander
30.08.2017
07:58:53
fromIntegral конечно же

Google
Ilya
30.08.2017
07:59:11
да тоже самое

Index нельзя сделать инстансом Integral, т.к. нельзя корректно определить функцию toInteger

потому что это расширение целых чисел, если так можно выразиться

т.е. добавляются новые элементы, не сводимые к целым числам, но могущие участвовать в индексировании массивов (списков)

Alexander
30.08.2017
08:00:19
нормально что выражения вроде (\x y z -> [x,y,z]) <$> (+3) <*> (*2) <*> (/2) только понимаются при помощи ручки и бумажки? это пройдет со временем?
то что f <$> a <*> b .. только по бумажке пройдет, желание писать такое выражение как выше пройдет тоже

melancholiac
30.08.2017
08:00:55
то есть так делать не хорошо?

Alexander
30.08.2017
08:00:58
@Masteroid ок, я неправильно твоё сообщение выше распарсил

ну именно твой пример выглядит сложнее чем должен

Alexander
30.08.2017
08:01:45
вообще пользоваться <$> и <*> нормально

а блин, я хотел @SINCERELY ответить

melancholiac
30.08.2017
08:03:28
вообще пользоваться <$> и <*> нормально
ну с 3 операндами прочитать еще могу

а 3+ нет ;_;

практика вылечит?

Vasiliy
30.08.2017
08:07:21
по-моему, норм читается

Alexander
30.08.2017
08:08:36
мне кажется что разницы в колве агрументы нет

слодности в чтении возникают если там всякие join вокруг и то 1 раз

Ilya
30.08.2017
08:09:01
Мне интересно, выкладывай
https://github.com/Toucandy/Index/blob/master/Index.hs в общем вот код, можно поиграться нужно просто сохранить файл и натравить ghci ghci Index.hs

пока только списки, массивы и пр. будут потом

Alexander
30.08.2017
08:10:29
не надо с такой структурой индекса переопределять для векторов операции :)

Google
Ilya
30.08.2017
08:11:27
ну там нужно не [a] -> i, а t a -> i

я думаю

Alexander
30.08.2017
08:11:41
угу

Ilya
30.08.2017
08:11:42
где t будет списком или чем угодно

это в планах:)

melancholiac
30.08.2017
08:12:05
можно считать что <$> это просто композиция, а <*> композиция "такая что следующая композиция будет произведена не с аргументом текущей композиции, а со следующим"?

Alexander
30.08.2017
08:12:14
или I (forall t . HasLength t => t -> Int)

melancholiac
30.08.2017
08:12:17
Prelude> :t (\x y z -> [x,y,z]) <$> (+3) <$> (*2) <$> (/2) (\x y z -> [x,y,z]) <$> (+3) <$> (*2) <$> (/2) :: Fractional a => a -> a -> a -> [a] Prelude> :t (\x y z -> [x,y,z]) <$> (+3) <*> (*2) <*> (/2) (\x y z -> [x,y,z]) <$> (+3) <*> (*2) <*> (/2) :: Fractional t => t -> [t] вроде такого

если я правильно понял последовательные <$> производят композицию только относительно первого элемента

Ilya
30.08.2017
08:13:16
или I (forall t . HasLength t => t -> Int)
спасибо, записал

Alexander
30.08.2017
08:14:24
что лучше это или явно вытащить тип структуры в типовой агрумент Index я не знаю

ещё меня печалит, что придется переопределять много функций из разных библиотек

и что с этим делать и возможно ли я не знаю

@int_index signatures и все эти модули могут помочь это решить?

вроде нет, без переписывания всего и вся?

Ilya
30.08.2017
08:24:10
ещё меня печалит, что придется переопределять много функций из разных библиотек
это да:( как это обойти, я не пока не придумал. Но это переопределение строится по одной и той же схеме, так что может его можно делать как-то автоматически, ну т.е. как-то в духе deriving?

Alexander
30.08.2017
08:24:23
TH если только

Ilya
30.08.2017
08:25:16
с TemplateHaskell я пока не знаком:) посмотрю

Vasiliy
30.08.2017
08:27:32

Страница 367 из 1551