Size: a a a

2020 November 20

A

Aminion in Haskell
хм, пробовал. но вестимо не правильно, я хочу следующей линзой промапить мейби, если он джаст
источник

A

Aminion in Haskell
в конце нужно записать, да
источник

к

кана in Haskell
если значение точно есть, а если нет то пофиг, то ix вместо at
источник

A

Aminion in Haskell
значение возможно отсутвует
источник

к

кана in Haskell
так это запись или чтение?
источник

A

Aminion in Haskell
запись, в возможно присутствующий элемент
источник

MK

Maxim Koltsov in Haskell
если у тебя там значение возможно отсутствует, то ты не можешь туда записать линзой же
источник

к

кана in Haskell
Aminion
запись, в возможно присутствующий элемент
а если его нет?
источник

MK

Maxim Koltsov in Haskell
той что lens2
источник

A

Aminion in Haskell
кана
а если его нет?
исходный объект, без изменений
источник

к

кана in Haskell
если элемента нет, и ничего тогда делать не нужно, то

m & at key . _Just . lens .~ a
или
m & ix key . lens .~ a
источник

MK

Maxim Koltsov in Haskell
кана
если элемента нет, и ничего тогда делать не нужно, то

m & at key . _Just . lens .~ a
или
m & ix key . lens .~ a
+
источник

A

Aminion in Haskell
кана
если элемента нет, и ничего тогда делать не нужно, то

m & at key . _Just . lens .~ a
или
m & ix key . lens .~ a
о, я был близок, но забыл композицию между _Just и lens, благодарю
источник

G

Gradi in Haskell
Добрый день. Вопрос про ReaderT и метод asks
Код для примера:
data Options = Options { field :: Int }

main :: IO ()
main = runReaderT pseudoMain Options { field = 1 }

pseudoMain :: ReaderT Options IO ()
pseudoMain = do
 -- Variant 1 (works)
 fieldVal <- asks field
 liftIO $ print fieldVal
 -- Variant 2 (doesn't work)
 liftIO $ print $ asks field


Первый вариант работает, а второй не компилится, компилятор говорит ошибку.
Я правильно понял, что второй вариант в принципе невозможен и нужно
явно выделять отдельную переменную, так как
 asks field 
имеет тип
 IO Int 
 и нужно его откуда достать?
источник

к

кана in Haskell
asks возвращает ReaderT, а не значение
источник

к

кана in Haskell
поэтому
или
x <- asks fields
liftIO $ print x

или

liftIO . print =<< asks field
источник

к

кана in Haskell
я почти всегда делаю второе
источник

MK

Maxim Koltsov in Haskell
извечный вопрос, как достать из монады
источник

G

Gradi in Haskell
кана
asks возвращает ReaderT, а не значение
Я это и имел в виду под первым вариантом.
Попробую ваш второй вариант.
Спасибо.
источник

к

кана in Haskell
liftIO . print =<< asks field
это если че то же самое что и
asks field >>= liftIO . print
или
asks field >>= \fieldVal -> liftIO $ print fieldVal
источник