
Yuriy
08.09.2017
13:03:08
но первое редуцируется во второе же
а второе в первое — нет

Андрей
08.09.2017
13:04:04
правильно, вы предлагаете не редуцировать до конца до нормальных форм. но это более сложнаяч и творческаяч задача
например, 1+1+2/0 = 2+2/0 так?

Google

Андрей
08.09.2017
13:04:59
можно творчески редуцировать левую и правую часть в совпадающие до альфаредукции термы, но не до нормальных форм
прикол с нормальными формами что они единственны, и это сильно упрощает проверку

Yuriy
08.09.2017
13:05:54

Андрей
08.09.2017
13:06:30
думаю, примерно такой же смысл вкладывается в понятия интенсиального и экстенсиального равенств?
а как вам вот такой терм 1:[1,1..] ++ [3]
равен он [1,1..]? и если да, то в каком смысле и как это определить и доказать равенство?

Ilya
08.09.2017
13:14:32
доказать легко: докажем, что для любого наперёд заданного n -> n-ые элементы списков равны
значит равны и сами списки

Yuriy
08.09.2017
13:16:31
а если не вставлять костыли специально для списков?
можно определить так, что для любой редукции a' формулы a существует последовательность шагов редукции b в a' и наоборот
нет, тоже не то
сравнить нормальные формы, вычисленные до любой конечной глубины?

Google

Yuriy
08.09.2017
13:22:52
WHNF-n

Ilya
08.09.2017
13:27:14
может быть через него можно сделать сравнение таких списков
главное придумать, что выбрать за Set
хочется сделать Set = мно-во пар элементов двух этих списков, и соотв-нно натравить предикат "а есть ли хоть одна пара не вида (x, x)"
но там есть существенные ограничения на создания такого Set, может не получиться

Mikhail Subbotin
08.09.2017
13:34:35
А есть статьи или книги которые всю эту теорию объясняют?

Ilya
08.09.2017
13:35:47
This module is based on the paper "Exhaustible sets in higher-type computation" by Martin Escardo
Haskell — невозможное возможно? / Хабрахабр
https://m.habrahabr.ru/post/201446/

Alexander
08.09.2017
13:58:31
я в text уже натыкался на кривые rewrite rules

Anatolii
08.09.2017
13:59:37
Может string не так и плох?:)

Alexander
08.09.2017
13:59:58
bos иногда излишне оптимистичен

Dmitry
08.09.2017
14:00:24
там хоть кто-то этот баг довел до сведения разработчиков? это всё-таки ахтунг

Alexander
08.09.2017
14:01:09
что я находил - довел в тот же день
с патчес
и его прям в тот же день приняли
про то, что выше, не знаю

Bohdan
08.09.2017
15:46:46
multRandomNumbers rands prev = case rands of
(x:xs) -> curRand : multRandomNumbers xs curRand
where curRand = prev * ( 0.995 + ( x * 0.01 ) )Я правильно понимаю, что на x в третьей строке ругается из-за того, что подразумеваютcя матчи, в которых x нет? Что делать в таких случаях? Можно объявить локальную функцию для конкретного матча?

kana
08.09.2017
15:48:30
let?
multRandomNumbers rands prev =
case rands of
(x:xs) ->
let
curRand = curRand = prev * ( 0.995 + ( x * 0.01 ) )
in
curRand : multRandomNumbers xs curRand

Google

Bohdan
08.09.2017
15:48:35
[] -> [] тут по-любому возможен, явно или неявно. Хоть список и бесконечный в конкретном случае
Точно, забыл, что им так можно пользоваться

kana
08.09.2017
15:49:24
а чего нельзя сразу rands сматчить в аргументе?

Bohdan
08.09.2017
15:49:52
Вау, и так можно? ☺

kana
08.09.2017
15:49:57
multRandomNumbers (x:xs) prev = curRand : multRandomNumbers xs curRand where
curRand = prev * ( 0.995 + ( x * 0.01 ) )

Vasiliy
08.09.2017
15:52:43
а чо так сложно?
r = 0:(zipWith nextRand randoms r) where nextRand x prev = prev * ( 0.995 + ( x * 0.01 ) )
0 - начальный элемент, randoms - список случайных чисел

Bohdan
08.09.2017
15:57:51
zip/zipWith я ещё не осилил, хотя часто встречаю; пойду курить, чо оно такое
Хмм, а почему так не компилится?
multRandomNumbers :: [Float] -> Float -> [Float]
multRandomNumbers (rand:otherRands) prev = curRand : multRandomNumbers otherRands curRand
where curRand = prev * ( 0.995 + ( rand * 0.0126315789473684 ) )
realRand = case curRand of
<0.8 -> 0.8
>1.2 -> 1.2
_ -> curRand

Abbath
08.09.2017
16:00:09
Ну если не компилится то там написано почему

Bohdan
08.09.2017
16:00:43
parse error on input ‘->’
case в where юзать нельзя, что ли?

Abbath
08.09.2017
16:02:28
<0.8 в case нельзя

Bohdan
08.09.2017
16:03:02
А чо можно?

Abbath
08.09.2017
16:05:22
Патерн матчинг можно

Ilya
08.09.2017
16:07:47

Bohdan
08.09.2017
16:14:21
ты язык по гуглу что ли учишь?:) возьми нормальный учебник
с let ты не знаком, с zip не знаком, зато уже код с монадами пишешь (вчера было)
Я все языки так учил: понадобилось чото — нашёл в справке, даже до интернетов ещё. Не вижу смысла муштровать кучу теории, хоть это и полезно (в теоркат въезжаю потихоньку). Тем более, zip, как вижу — сахарок какой-то, раз получилось без него, просто велосипедно
А без монад реальной жизни нет, только в ghci что-то считать, смысл их откладывать? ☺

Ilya
08.09.2017
16:14:29
вот глянь https://anton-k.github.io/ru-haskell-book/book/4.html
насчёт let и пр.

Google

Kirill
08.09.2017
16:14:36
или вот http://learnyouahaskell.com/chapters

Bohdan
08.09.2017
16:15:16
А Шевченковский учебник хорош? Я его начал читать когда-то, но забросил

Андрей
08.09.2017
16:15:34
Холомьева советовать новичку без математическогй подготовки имхо жестко

Ilya
08.09.2017
16:15:53
она простая

Abbath
08.09.2017
16:15:59
Шевченковский не дописан еще

Kirill
08.09.2017
16:16:09

Андрей
08.09.2017
16:16:09
Шевченковский с упором на матерую практику - начинается не с функторов а с установки и настройки окружения ))
Липовача из известных самое то в данном случае

kana
08.09.2017
16:16:35
Душкина нужно советовать)

Андрей
08.09.2017
16:17:03
Душкина ругают. За копипасту переводов наверное. Но я читал, было нормально.

Arseniy
08.09.2017
16:21:03
Зачем читать на русском учебную/научную литературу?

Ilya
08.09.2017
16:21:47
зачем нет?

Andrew
08.09.2017
16:21:54
Как минимум быстрее читаешь на родном языке

Ilya
08.09.2017
16:22:59

Bohdan
08.09.2017
16:28:10

Андрей
08.09.2017
16:30:07
На русском читать затем, чтобы к нагрузке по восприятию материала не добавлялась нагрузка по переводу. Так то ради искусства можно и на Японском читать.

kana
08.09.2017
16:35:00
вообще есть подозрение, что читать английскую научную литературу проще, чем русскую, как-то легче формулируют они приложения
но это только ощущения, выборка у меня маленькая

Bohdan
08.09.2017
16:37:45
Тэкс, и почему у меня хэллоуворлд из полусотни строчек весит в скомпилированном виде 1.6 МБ? Можно его какими-то опциями уменьшить?

Google

Dmitry
08.09.2017
16:40:13
рантайм, например
strip например
но вообще раньше это весило мегабайт десять и никто не жаловался

Abbath
08.09.2017
16:40:38
Зато зависимостей мало

Ilya
08.09.2017
16:41:57
сейчас зашёл в маленький проект, там 5 объектников по 16-30 килобайт, но в сумме они дали исполняемый файл на 1.7 мегов

Index
08.09.2017
16:52:51
Это не ради искусства, а из-за того, что так сложилось, что почти вся литература полезная на английском.
Ограничивая себя до другого языка (хоть русского, хоть японского, хоть немецкого), вынуждаешь себя терпеть сомнительного качества перевод (если он есть!)
Это не потому что английский хороший, а потому что его все используют.

Андрей
08.09.2017
16:54:08
Мой пассаж про ради искусства был небольшим троллингом на тему того, что спрашивали зачем читать на русском, а английский не упоминался совсем.
А так, вон Олег Киселев в Японии думаю вынужден так статьи писать

Ilya
08.09.2017
16:57:30

Index
08.09.2017
16:57:47
Это про computer science в целом и Haskell в частности

Ilya
08.09.2017
16:58:02
ну computer science ещё м.б.

Index
08.09.2017
16:58:22
В других областях что происходит мне не известно

Андрей
08.09.2017
16:58:41
Интересно, а конкретно про Хаскель на каком языке больше статей и книг? Неужели уже на русском? )

Ilya
08.09.2017
16:58:44
шире — "учебная/научная литература" — уже не верно
Зачем читать на русском учебную/научную литературу?
к этому