You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Хотел бы выразить благодарность за ruhaskellbook, была проделана восхитительная работа. У меня вопрос по одной из глав, про STG. Там написано, что FUN - это определение функции. Не знаю, может быть, это специально для упрощения сделано, но все же считаю должным написать. Речь идет ведь об объектах кучи, а тело функции не лежит в куче, оно расположено в секции кода. А FUN (насколько я понял) - замыкание. Т.е. если взять:
f x y = x + y
f' x -> \y -> x + y
,то в первом случае после скармливания функции одного аргумента (и редукции) мы получим PAP, а во втором - FUN. Ну, с натяжкой можно сказать, что лямбда и есть определение, но тут ведь не только лямбда, а еще и захваченный контекст (первый аргумент), таким образом, это замыкание. Т.е. мне подумалось после чтения, что FUN заключает в себе просто указатель на функцию в секции кода, а это не так. Может, я где-то что-то неправильно понял, а то и свое додумал, я себя не считаю достаточно компетентным, вот источник:
Привет.
Хотел бы выразить благодарность за ruhaskellbook, была проделана восхитительная работа. У меня вопрос по одной из глав, про STG. Там написано, что FUN - это определение функции. Не знаю, может быть, это специально для упрощения сделано, но все же считаю должным написать. Речь идет ведь об объектах кучи, а тело функции не лежит в куче, оно расположено в секции кода. А FUN (насколько я понял) - замыкание. Т.е. если взять:
,то в первом случае после скармливания функции одного аргумента (и редукции) мы получим PAP, а во втором - FUN. Ну, с натяжкой можно сказать, что лямбда и есть определение, но тут ведь не только лямбда, а еще и захваченный контекст (первый аргумент), таким образом, это замыкание. Т.е. мне подумалось после чтения, что FUN заключает в себе просто указатель на функцию в секции кода, а это не так. Может, я где-то что-то неправильно понял, а то и свое додумал, я себя не считаю достаточно компетентным, вот источник:
https://ghc.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/HeapObjects
The text was updated successfully, but these errors were encountered: