
Victor
05.10.2018
15:46:19

Denis
05.10.2018
15:46:47
ну тогда и у Гонзалеса есть
https://github.com/Gabriel439/Haskell-Typed-Spreadsheet-Library

Victor
05.10.2018
15:48:18
?

Google

Denis
05.10.2018
15:48:47
кстати в пурсе это https://github.com/sharkdp/purescript-flare

Vasiliy
05.10.2018
15:49:03
спасибо! разбираюсь

Denis
05.10.2018
15:49:46
кстати есть еще такой интересный проект
https://github.com/sharkdp/purescript-sparkle

Ilya
05.10.2018
15:53:15
да, у меня ячейка может зависеть от ячейки, которая зависит от другой ячейки, которая зависит еще от N ячеек, и причем разрешать такой граф нужно в определенной последовательности, вероятно, решая сначала "алгебраические" ячейки (которые не зависят от внешних источников данных) итп. единственное, что облегчает задачу это отстутствие реактивности, но и это условие потом уберется, вроде как. возможно, мне стоит задуматься сейчас и об этом
Вот тут интересно было написано про ячейки эксель https://m.habr.com/post/203800/

Denis
05.10.2018
15:56:10
может лучше на оригинал давать ссылку?)
https://github.com/quchen/articles/blob/master/loeb-moeb.md
и все эти loeb/moeb есть просто обобщение для fix
но это все еще value level

Alexander
05.10.2018
15:57:11
typelevel нужен если таблицу в языке собираешь же
иначе или только value или синглетоны

Denis
05.10.2018
16:03:55

Vasiliy
05.10.2018
16:21:38
loeb & moeb прям то, что нужно, кажется начинаю понимать что происходит

Denis
05.10.2018
16:23:06
а что если представить через Cofree?

Ilya
05.10.2018
16:27:19

Google

Denis
05.10.2018
16:27:58

Ilya
05.10.2018
16:28:44

Alexander
05.10.2018
16:29:15

Terminator
05.10.2018
20:28:07
@chuckis будет жить. Поприветствуем!

Denis
05.10.2018
21:35:16
https://www.fpcomplete.com/blog/2018/10/resourcet-necessary-evil

Terminator
05.10.2018
21:52:43
@d_krasilnikov будет жить. Поприветствуем!
@nkhodyunya будет жить. Поприветствуем!


bloody
06.10.2018
13:56:35
Здарова, у меня взырвается мозг с этими байтстрингами, помогите разобраться пор фавор. Код:
{-# Language OverloadedStrings #-}
import Network.HTTP.Simple
import Control.Monad
import Data.Char
import System.Random
import System.Environment
import qualified Data.ByteString as S
agents=["example1","example2"]; len=subtract 1 $ length agents
genHeaders::IO [(a,S.ByteString)]
genHeaders=do
ua<-pickrandom agents
ka<-randomRIO(110,120)::IO Int
ref<-genStr (-1) []
return [("user-agent",ua),("Cache-Control","no-cahce"),
("Accept-Charset","ISO-8859-1,utf-8;q=0.7,*;q=0.7"),
("Referer","http://www.google.com/?q="++ref),
("Keep-Alive",(show ka)), ("Connection","keep-alive")]
--main=getArgs >>= parseArgs >>= wordPressDos
main=do
h<-genHeaders
sendreq h "http://locahost"
sendreq headers host=(\req->httpNoBody $ setRequestHeaders headers req) =<< (parseRequest host)
parseArgs=return . head
wordPressDos=print
pickrandom list=fmap (list !!) $ randomRIO (0,len)
--genStr::Int->[Char]->IO [Char]
genStr size str
| size==(-1) = genStr 13 str
| size==0 = return (S.pack str)
| otherwise =join $ (randomRIO(65,90)>>=(\x->return (genStr (size-1) ((chr x):str))))


Kirill
06.10.2018
14:02:53
а в чём вопрос?

bloody
06.10.2018
14:11:06
ща я скину выхлоп
в общем getStr возвращает строку, а должна байтстроку, поэтому внутри генератора задан тип стринг из-за строки ".."++ref
как пофиксить
я подписал в конце S.pack, как видно в коде
но это дало еще больше выхлопа на ошибки
сигнатура закомечена, если не заметили

Andrey
06.10.2018
14:13:43
++ - это для строк
<> - это для моноида

Kirill
06.10.2018
14:14:18
ещё genHeaders::IsString a => IO [(a,S.ByteString)]
к примеру
в getStr путаются типы
S.pack пакует [Word8], а у тебя String, т.е. [Char]

Google

Kirill
06.10.2018
14:15:53
последний кейс там проще в ду-нотации
| otherwise = do
x <- randomRIO(65,90)
genStr (size-1) ((chr x):str)
а вообще есть ramdoms

bloody
06.10.2018
14:23:01
а как чар конвертнуть тогда
или заменить функцию
chr

Yuriy
06.10.2018
14:24:37

Kirill
06.10.2018
14:26:35
убрать просто chr
и тип аккумулятора будет [Word8]

Alexander
06.10.2018
15:02:39
в no-cache опечатка кстати
а про остальное вроде ответили

Terminator
06.10.2018
18:38:19
@nzvtrk будет жить. Поприветствуем!

Artem
06.10.2018
19:36:29
Всем доброго времени суток)
Хотел у Вас спросить(очень банальный вопрос), но все же:
За что Вы любите Haskell(его ленивый и чисто функциональный подход в решении задач)?

Сергей
06.10.2018
19:38:16
Можно конечно чесать про безопасность и всё такое, но глубинная причина именно в этом

Kirill
06.10.2018
19:44:49
на хаскеле очень удобно рефакторить код, когда компилятор оказывает офигенную помощь, которые случаи рефакторинга из того, что делал и получалось легко и непренуждённо, я просто не представляю можно ли вообще сделать без косяков в каком-нибудь питоне, скажем

kana
06.10.2018
19:45:44

Сергей
06.10.2018
19:48:23

Google

Abbath
06.10.2018
20:02:50

Imants
06.10.2018
20:04:39
Можно писать большие приложения и самому их поддерживать с удовольствием.
С другими [стиральными порошками] получается, как всегда.

Сергей
06.10.2018
20:14:53

Abbath
06.10.2018
20:15:34

A64m
06.10.2018
20:20:51

Imants
06.10.2018
20:23:09
Сразу делать велик - наверное слишком амбициозная задача.
Может, начинать с самоката, и потом добавлять остальное?

Сергей
06.10.2018
20:23:26
Гептапод точнее
Гептапод - это типа инопланетянин? Ну да. И я не один такой. Нас 857

Abbath
06.10.2018
20:23:54

Сергей
06.10.2018
20:27:18
Ага
Вот так

bloody
06.10.2018
20:28:48
хм а если я сам заблуждаюсь
это все еще дзен?