Форум программистов, компьютерный форум, киберфорум
Наши страницы
Haskell
Войти
Регистрация
Восстановить пароль
 
hardentoo
127 / 26 / 1
Регистрация: 10.10.2017
Сообщений: 32
1

Constant Allocation Form

18.03.2018, 14:23. Просмотров 352. Ответов 0

Продолжаю изучать haskell, изучаю много всего и в частности пока смотрю разные реализации вычисления чисел Фибоначчи. Интересует следующее, возьмем к примеру вот такую реализацию

Haskell
1
2
3
4
5
6
7
module Main where
 
import Control.Arrow ((&&&))
 
fib = fst . (iterate (snd &&& uncurry (+)) (0, 1) !!)
 
main = print (map fib [1..20])
Затем я делаю
Bash
1
2
3
stack ghc FibArrow.hs -- -prof -fprof-auto -rtsopts -O2 -fexcess-precision -optc-O3 -optc-ffast-math -fforce-recomp
 
./FibArrow +RTS -p
Открываю получившийся файл FibArrow.prof


Sun Mar 18 14:04 2018 Time and Allocation Profiling Report (Final)

FibArrow +RTS -p -RTS

total time = 0.00 secs (0 ticks @ 1000 us, 1 processor)
total alloc = 62,408 bytes (excludes profiling overheads)

COST CENTRE MODULE SRC %time %alloc

MAIN MAIN <built-in> 0.0 1.1
CAF GHC.Conc.Signal <entire-module> 0.0 1.0
CAF GHC.IO.Encoding <entire-module> 0.0 4.6
CAF GHC.IO.Handle.FD <entire-module> 0.0 55.3
main Main FibArrow.hs:7:1-30 0.0 27.8
fib Main FibArrow.hs:5:1-53 0.0 9.7


individual inherited
COST CENTRE MODULE SRC no. entries %time %alloc %time %alloc

MAIN MAIN <built-in> 46 0 0.0 1.1 0.0 100.0
CAF Main <entire-module> 91 0 0.0 0.1 0.0 21.4
fib Main FibArrow.hs:5:1-53 94 1 0.0 8.1 0.0 8.1
main Main FibArrow.hs:7:1-30 92 1 0.0 11.6 0.0 13.2
fib Main FibArrow.hs:5:1-53 95 0 0.0 1.6 0.0 1.6
CAF GHC.IO.Handle.FD <entire-module> 89 0 0.0 55.3 0.0 55.3
CAF GHC.IO.Encoding <entire-module> 86 0 0.0 4.6 0.0 4.6
CAF GHC.IO.Handle.Text <entire-module> 84 0 0.0 0.1 0.0 0.1
CAF GHC.Conc.Signal <entire-module> 79 0 0.0 1.0 0.0 1.0
CAF GHC.IO.Encoding.Iconv <entire-module> 67 0 0.0 0.4 0.0 0.4
main Main FibArrow.hs:7:1-30 93 0 0.0 16.1 0.0 16.1



И в разделе MAIN вижу аббревиатуру CAF. Можете мне объяснить, подробнее, что она значит, и как вообще устроен этот файл. Вот, что нашел сам

CAF = Constant applicative form

Constant applicative form = суперкомбинатор, не являющийся анонимной функцией.
Суперкомбинатор = константа или комбинатор, состоящий из суперкомбинаторов.

Подробнее,

\x1 x2 .. xn -> f - суперкомбинатор <=> В f нет свободных переменных кроме x1,...,xn и все лямбда функции в f - суперкомбинаторы.

CAF - это суперкомбинатор \x1 x2 .. xn -> f, в котором n = 0

Насколько, я понимаю компилятор может вычислить все CAF.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2018, 14:23
Ответы с готовыми решениями:

Contact Form 7 стал платным для reCaptcha v3 (сервис Constant Contact)
Пишет, что нужна интеграция с их сервисом Constant Contact. А регистрация в нем платная.... ...

Expected constant expression; cannot allocate an array of constant size 0
Доброго утра. Народ помогите, вот программа оформлена в виде функции #include &lt;iostream&gt; #include...

Form.Hide ; Form.Close ; Form.Show
Здравствуйте. Вот интересует один вопрос, в чём различие между Form1.Close; Form2.Show и...

Dynamic Memory Allocation
Не понимаю строчки с 15 по 17. a - не массив, почему его так заполняют, и почему в тот же...

Allocation bitmap is corrupt
При открытии почты сообщение &quot;allocation bytmap is corrupt&quot; это все? Полные кранты? -bash-4.1$...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2018, 14:23

free does not match allocation
Что значит это сообщение?

Bad allocation || Segmentation fault
Люди, помогите плиз!! голова уже взрывается, но как найти ошибку, не могу понять!! Не могу привести...

Invalid allocation size 4294967295 bytes
Здравствуйте! Пытаюсь реализовать алгоритм обхода Грэхема. При запуске приложения появляется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.