Size: a a a

Elm Lang сообщество разработчиков

2019 August 23

S

Sviatoslav in Elm Lang сообщество разработчиков
Yauhen Pyl
доброго времени суток всем, может быть кто нибудь знает как в Elm сделать focus на input?
что то вроде document.getById().focus() ?
источник

YP

Yauhen Pyl in Elm Lang сообщество разработчиков
спасибо
источник
2019 August 26

AK

Anton Kotenko in Elm Lang сообщество разработчиков
Max P
то есть, есть такая же книга про концепты ФП на хаскель, после которой мне elm станет понятнее... какая?
источник

AR

Anton Rich in Elm Lang сообщество разработчиков
Max P
то есть, есть такая же книга про концепты ФП на хаскель, после которой мне elm станет понятнее... какая?
источник
2019 August 29

AK

Anton Kotenko in Elm Lang сообщество разработчиков
Вопрос про рандом-генераторы. Если уже есть константный список из списков нужных значений, (допустим, в нём 8 элементов-списков, длинами от 3 до 9, в которых каждый элемент — некоторый набор значений), надо в каждый такой элемент примешать, к готовым, несколько рандомных. Как сделать такой генератор?
источник

AK

Anton Kotenko in Elm Lang сообщество разработчиков
Или просто, есть готовый список из n (известное кол-во) элементов со значениями, как примешать к каждому элементу ещё рандомные  значения?

Например, чтобы из списка:

x = [ { a: 0.5, b: 1.29, c : 3.6 }, { a: 1.5, b: 0.2, c : 7.0, d: 2.0 }, { a: 12.4, b: 0.8, c : 1.1 }, ... ]

Получить генератор списков вроде такого:

x = [ { a: 0.5, b: 1.29, c : 3.6, d: 17.0, e: 2.11, f: -5.0 }, { a: 1.5, b: 0.2, c : 7.0, d: 2.0, e: -7.2, f: 10.12 }, { a: 12.4, b: 0.8, c : 1.1, d: 4.4, e: 33.1, f: 19.0 }, ... ]

где d, e, f — рандомные значения
источник

AK

Anton Kotenko in Elm Lang сообщество разработчиков
Random.list n <| Random.constant ... — нет возможности получить индекс для каждого элемента

Ну и непонятно, как мэпить
источник

AK

Anton Kotenko in Elm Lang сообщество разработчиков
а вот, нашёл в Random.Extra
источник

AK

Anton Kotenko in Elm Lang сообщество разработчиков
источник
2019 September 06

AK

Antony Kapranov in Elm Lang сообщество разработчиков
Господа и дамы, подскажите, пожалуйста, как на elm сделать хаскелевский Fix, который

newtype Fix f = Fix { unFix :: f (Fix f) }
источник
2019 September 07

G

GG in Elm Lang сообщество разработчиков
Antony Kapranov
Господа и дамы, подскажите, пожалуйста, как на elm сделать хаскелевский Fix, который

newtype Fix f = Fix { unFix :: f (Fix f) }
это что значит для Maybe?
правильно понимаю?
unfix $ Just ( Fix ( Just 5) )
источник

IR

Ilya Rezvov in Elm Lang сообщество разработчиков
для Maybe это превращается в список
источник

G

GG in Elm Lang сообщество разработчиков
я правильно написал пример использования?
источник

IR

Ilya Rezvov in Elm Lang сообщество разработчиков
с этим типом ручками сложно что-то полезное сделать, нужны функции помощники типа cata, ana, etc
источник

IR

Ilya Rezvov in Elm Lang сообщество разработчиков
источник

IR

Ilya Rezvov in Elm Lang сообщество разработчиков
тут можно посмотреть пример со списком
источник

IR

Ilya Rezvov in Elm Lang сообщество разработчиков
я кстати нагнал немного, что бы Maybe превратить в список фиксом нужен второй параметр
источник

AK

Antony Kapranov in Elm Lang сообщество разработчиков
GG
это что значит для Maybe?
правильно понимаю?
unfix $ Just ( Fix ( Just 5) )
С мэйби это получается представление натуральных чисел, что-то типа списка, но без значений:

{-# LANGUAGE UndecidableInstances #-}

newtype Fix f = Fix { unFix :: f (Fix f) }

-- Чтобы показывался результат в консоли
instance Show (f (Fix f)) => Show (Fix f) where
   showsPrec n x = showParen (n > 10) $ \s ->
       "Fix " ++ showsPrec 11 (unFix x) s

zero = Fix Nothing
one = Fix (Just zero)
two = Fix (Just one)

-- Вывод
-- *Main> two
-- Fix (Just (Fix (Just (Fix Nothing))))
источник

G

GG in Elm Lang сообщество разработчиков
Antony Kapranov
С мэйби это получается представление натуральных чисел, что-то типа списка, но без значений:

{-# LANGUAGE UndecidableInstances #-}

newtype Fix f = Fix { unFix :: f (Fix f) }

-- Чтобы показывался результат в консоли
instance Show (f (Fix f)) => Show (Fix f) where
   showsPrec n x = showParen (n > 10) $ \s ->
       "Fix " ++ showsPrec 11 (unFix x) s

zero = Fix Nothing
one = Fix (Just zero)
two = Fix (Just one)

-- Вывод
-- *Main> two
-- Fix (Just (Fix (Just (Fix Nothing))))
понятный пример. спасибо 👍
источник

AK

Antony Kapranov in Elm Lang сообщество разработчиков
Я вроде вдуплил как на элме сделать

main = text <| Debug.toString <| maybeCata toInt two

type FixMaybe = FixMaybe (Maybe FixMaybe)
maybeCata : (Maybe a -> a) -> FixMaybe -> a
maybeCata alg (FixMaybe node) =
 alg (Maybe.map (maybeCata alg) node)

toInt : Maybe Int -> Int
toInt m =
 case m of
   Just x  -> x + 1
   Nothing -> 0
   
zero = FixMaybe Nothing
one  = FixMaybe (Just zero)
two  = FixMaybe (Just one)
источник