@haskellru

Страница 232 из 1551
? animufag ?
09.03.2017
12:30:37
гхц-джс или там элм пурскрипт?

melancholiac
09.03.2017
12:30:54
эльм

? animufag ?
09.03.2017
12:30:59
кстати джс конф на порядок больше, так что мб эта не самая удачная

ну давай

Google
melancholiac
09.03.2017
12:32:02
type alias Model = { name : String , password : String , passwordAgain : String } model : Model model = Model "" "" ""

model : Model - это функция без параметров?

? animufag ?
09.03.2017
12:32:59
да

melancholiac
09.03.2017
12:33:06
спасибо

Dmitry
09.03.2017
12:33:20
чем это отличается от "значение" ?

? animufag ?
09.03.2017
12:33:32
ой всё

ща опять про концепции будет спор

Евгений
09.03.2017
12:56:41
Oleg
09.03.2017
12:58:09
Про понятия
чем это отличается от "концепция" ?

Евгений
09.03.2017
12:58:18
чем это отличается от "значение" ?
По-моему понятие значения можно несколькими образами спроецировать на haskell. Это зависит от того считаем ли мы, что бывают значения с эффектами, или нет

Oleg
09.03.2017
12:59:47
а я думал, что зависит от того, мономорфная или нет

Евгений
09.03.2017
13:01:38
чем это отличается от "концепция" ?
Хз. Мне казалось, что я могу уловить разницу, но когда попробовал построить концепцию понятия и понятие концепции, не смог её поймать

Dmitry
09.03.2017
13:02:00
зато всегда есть о чём поговорить

Google
Евгений
09.03.2017
13:02:14
Oleg
09.03.2017
13:02:24
Евгений
09.03.2017
13:03:31
Я не уверен, что вполне корректно crap значением. Это практически что угодно

Oleg
09.03.2017
13:07:54
Я не уверен, что вполне корректно crap значением. Это практически что угодно
ну если выразить это во что-нибудь вроде (я тупой, так что не судите) ∀ a. ((RealWorld -> () -> a) -> a, то вполне себе значение

melancholiac
09.03.2017
15:34:07
type Msg = Name String | Password String | PasswordAgain String я так понял это объявления нового типа Msg, который будет string, но при этом будет иметь 1 из 3 подтипов, которые просто различные псевдонимы для string

верно?

Dmitry
09.03.2017
15:35:30
или просто ADT с тремя конструкторами

Dmitry
09.03.2017
15:36:34
довольно забавно проводить аналогии, но, вероятно, в Elm-е обычный хиндли-милнер с обычными для языков ml-группы типами?

melancholiac
09.03.2017
15:36:48
но при этом компилятор различает string созданные разными конструкторами?

Quet
09.03.2017
15:37:36
но при этом компилятор различает string созданные разными конструкторами?
тебе же надо будет в своей апдейт функции матчить эти мессаджи разные и делать разное. так что да, различает

Dmitry
09.03.2017
15:37:54
string это просто тип того, что сидит в конструкторе

Quet
09.03.2017
15:38:18
и да, создавать их тоже в разных местах input [onInput PasswordAgain] [] ...

Dmitry
09.03.2017
15:42:12
могут быть тонкие вещи, типа окамловских полиморфных вариантов

или как там они назывались

? animufag ?
09.03.2017
15:42:26
type Msg = Name String | Password String | PasswordAgain String я так понял это объявления нового типа Msg, который будет string, но при этом будет иметь 1 из 3 подтипов, которые просто различные псевдонимы для string
они совершенно независимы друг от друга. то есть то что в каждом лежит стринг, это просто злой умысел автора кода, чтобы сбить тебя с толку

melancholiac
09.03.2017
15:44:16
спасибо

Google
melancholiac
09.03.2017
16:30:53
Тёма
09.03.2017
16:30:53
Хороший пример. Дальше с фотками будет)

melancholiac
09.03.2017
16:31:29
Quet
09.03.2017
16:33:43
а что с ними?

melancholiac
09.03.2017
16:37:04
траблы с типами

upd: я идиот и не смотрю на то что функция возвращает

Alexander
09.03.2017
19:01:28
блин третий день с TH бился

в общем если вы хотите писать foo (x:xs) = [e| ... $(foo xs) ... |] не делайте так

а перепишите через let ts = map fooOne xs и потом compose отдельным чем-нить

иначе треш угар OOM-killer сегфолты и прочие звери

Quet
09.03.2017
19:04:45
баг в ghc ?

Alexander
09.03.2017
19:06:33
наверное

не смогу зарепортить, у меня минимального кейса нет

Misha
10.03.2017
11:02:23
вопрос знатокам: заметил что уже несколько раз написал что-то типа let x = [ w | (_, Just w) <- maybeX ] let notX = [ n | (n, Nothing) <- maybeX ] есть ли какой-то более красивый способ это делать? в один проход например

Dmitry
10.03.2017
11:02:54
Data.List

какой-нибудь partition

или span

там их штук 15. посмотри подходящую

Misha
10.03.2017
11:03:17
а

там только partition :: (a -> Bool) -> [a] -> ([a], [a])

Google
Misha
10.03.2017
11:05:03
про него я помню, он тут не укоротит ничего особо

Dmitry
10.03.2017
11:05:04
не подходит?

Misha
10.03.2017
11:05:24
можно с isJust конечно

Dmitry
10.03.2017
11:05:26
partition (snd.isJust) wtf

Misha
10.03.2017
11:05:34
угу

Dmitry
10.03.2017
11:05:43
ну для тонких ценителей - все то же самое + линзы

Misha
10.03.2017
11:06:28
линзы не трогаю почти что специально

потому что там надо много знать, иначе похоже на магию

? animufag ?
10.03.2017
11:06:50
partition (snd.isJust) wtf
Не распакует just

Dmitry
10.03.2017
11:07:41
ну сначала разделить на два, потом одному catMaybes

Serghei
10.03.2017
11:15:56
кто-то идет на https://www.facebook.com/events/331301360599068/ ?

Misha
10.03.2017
11:16:55
let (x', nx') = L.partition (isJust . snd) maybeX let (x, nx) = (mapMaybe snd x', map fst nx')

вот там можно

так

проходов впрочем все равно два

надо в педагогических целях с фолдом сделать

Dmitry
10.03.2017
11:27:00
анфолдом кстати можно

в один проход и с кейсом

но в принципе разницы фолдом или анфолдом тут нет

Misha
10.03.2017
11:27:33
splitMaybes :: [(a, Maybe b)] -> ([(a, b)], [a]) splitMaybes [] = ([], []) splitMaybes ((x, Just y) : ps) = let (x', y') = splitMaybes ps in ((x, y) : x', y') splitMaybes ((x, Nothing) : ps) = let (x', y') = splitMaybes ps in (x', x : y')

Google
Misha
10.03.2017
11:27:56
прозреваю утечки и прочие заборы с коровниками

надо ! аккуратно расставлять

Dmitry
10.03.2017
11:29:23
зачем тут явная рекурсия?

? animufag ?
10.03.2017
11:32:16
но в принципе разницы фолдом или анфолдом тут нет
Анфолд не очень там в итоге список получается а нужна пара

Я просто никогда особо не интересовался но это же просто обход списка

Звучит как будто ты на си пишешь

Misha
10.03.2017
11:35:05
и вообще надо с аккумулятором

все плохо

Dmitry
10.03.2017
11:35:49
миллионы элементов в списке?

Misha
10.03.2017
11:38:36
нет, их там мало и на самом деле совершенно неважно с практической точки зрения

у меня тут скорее педагогический интерес

как "красиво"

Dmitry
10.03.2017
11:39:27
фолд + case

ну и лучше не грузиться, в хаскеле миллион способов написать одно и то же, если грузится тем, как красиво не напишешь ничего никогда.

Alexander
10.03.2017
11:40:22
splitMaybes = (,) <$> mapMaybe (\(a,mb) -> (a,) <$> b) <*> mapMaybe (\(a,mb) -> maybe a (const Nothing))

покатит?

хотя сложно

splitMaybes = partitionEither . map (\(a,mb) -> maybe (Right a) (\x -> Left (a,x))

@lolepezy ^^

Dmitry
10.03.2017
11:43:15
два прохода

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