deniok: (Default)
[personal profile] deniok
Устно вычислите значения побочные эффекты выражений и проверьте результат в GHCi:
let x = print "first" in print "second"

let x = print "first" in x >> print "second"

(\x -> print "first") (print "second")

print "first" `seq` print "second"
(Значения тоже можете вычислить в качестве бонуса:)

Date: 2012-04-15 12:00 pm (UTC)
From: [identity profile] bravit.livejournal.com
С seq ошибся…

Date: 2012-04-15 12:22 pm (UTC)
From: [identity profile] deni-ok.livejournal.com
Ради этого всё затевалось :)

Date: 2012-04-15 12:28 pm (UTC)
From: [identity profile] sergei lebedev (from livejournal.com)
Аналогично, только я что-то не до конца понимаю почему вычисление 'print "first"' до HNF не дало сайд-эффекта?

Date: 2012-04-15 01:14 pm (UTC)
From: [identity profile] nponeccop.livejournal.com
Грубо говоря, потому что сайд-эффекты производит runIO в рантайм-библиотеке, а вычисление "print first" лишь вычисляет, какой эффект надо произвести. Всё, что не попадает в runIO, не производит эффектов, независимо от того, вычисляется или нет.

Для полноты картины нужны ещё примеры с unsafePerformIO

Profile

deniok: (Default)
deniok

February 2022

S M T W T F S
  12345
6789101112
13141516171819
20212223 242526
2728     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 24th, 2025 02:19 am
Powered by Dreamwidth Studios