Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Неточное определение для FUN в главе про STG (Антон Круглов в вк) #91

Open
anton-k opened this issue Jan 23, 2017 · 0 comments

Comments

@anton-k
Copy link
Owner

anton-k commented Jan 23, 2017

Привет.

Хотел бы выразить благодарность за ruhaskellbook, была проделана восхитительная работа. У меня вопрос по одной из глав, про STG. Там написано, что FUN - это определение функции. Не знаю, может быть, это специально для упрощения сделано, но все же считаю должным написать. Речь идет ведь об объектах кучи, а тело функции не лежит в куче, оно расположено в секции кода. А FUN (насколько я понял) - замыкание. Т.е. если взять:

f x y = x + y
f' x -> \y -> x + y

,то в первом случае после скармливания функции одного аргумента (и редукции) мы получим PAP, а во втором - FUN. Ну, с натяжкой можно сказать, что лямбда и есть определение, но тут ведь не только лямбда, а еще и захваченный контекст (первый аргумент), таким образом, это замыкание. Т.е. мне подумалось после чтения, что FUN заключает в себе просто указатель на функцию в секции кода, а это не так. Может, я где-то что-то неправильно понял, а то и свое додумал, я себя не считаю достаточно компетентным, вот источник:

https://ghc.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/HeapObjects

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant