Size: a a a

2021 February 04

к

кана in Haskell
1. без инлайнов
fmap f x = A f x
foo = fmap
bar = foo a b

так и останется

(Если ghc сам не решит заинлайнить foo)

2. инлайн foo
fmap f x = A f x
foo = fmap
bar = foo a b
{-# INLINE foo #-}

станет
bar = fmap a b

(Если ghc сам не решит заинлайнить fmap)

3. инлайн всего
fmap f x = A f x
foo = fmap
bar = foo a b
{-# INLINE foo #-}
{-# INLINE fmap #-}

станет
bar = A a b
источник

MK

Maxim Koltsov in Haskell
четвёртого варианта нет
источник

DB

Danil Berestov in Haskell
всё, понял
источник

к

кана in Haskell
Maxim Koltsov
четвёртого варианта нет
🙂

4. инлайн fmap

fmap f x = A f x
foo = fmap
bar = foo a b
{-# INLINE fmap #-}

так и останется

foo = fmap
bar = foo a b

(Если ghc сам не решит заинлайнить foo)
источник

DB

Danil Berestov in Haskell
а гхц может заинлайнить рекурсивно?
источник

DB

Danil Berestov in Haskell
точнее
источник

DB

Danil Berestov in Haskell
САМ РЕШИТЬ заинлайнить рекурсивно
источник

DB

Danil Berestov in Haskell
и foo и fmap
источник

DB

Danil Berestov in Haskell
походу может
источник

к

кана in Haskell
Danil Berestov
походу может
как ты понял это?
источник

DB

Danil Berestov in Haskell
Ну почитал ещё всё, что вы писали
источник

к

кана in Haskell
что значит рекурсивно?
источник

к

кана in Haskell
то есть сам foo/fmap рекурсивный?
источник

DB

Danil Berestov in Haskell
сначала foo, потом опять решить: надо и fmap тоже заинлайнить
источник

к

кана in Haskell
а, ну да, может офк
источник

ЗП

Зигохистоморфный Пре... in Haskell
источник

JS

Jerzy Syrowiecki in Haskell
конечно, встраивание и специализация работают рекурсивно, но не до бесконечности, глубина ограничена настройками и эмпириками
источник

AA

A64m AL256m qn<co... in Haskell
ну что, 9.0.1
источник

MK

Maxim Koltsov in Haskell
что нового
источник

LO

Leonid 🦇 Onokhov in Haskell
А из группы чего выходил?
источник