LINUX.ORG.RU

Бесконечные последовательности в Scala

 , ,


0

3

Собственно такой вопрос: делаю в Хаскелле

Prelude> let infList = 1 : infList
Prelude> take 3 infList 
[1,1,1]
, делаю в Scala
lazy val infList : List[Int] = 1 :: infList
infList: List[Int] = <lazy>
infList.take(2)

Получаю вывод:

at .infList(<console>:7)
	at .infList(<console>:7)
	at .infList(<console>:7)
	at .infList(<console>:7)
	at .infList(<console>:7)
	at .infList(<console>:7)
	at .infList(<console>:7)
	at .infList(<console>:7)
	at .infList(<console>:7)
	at .infList(<console>:7)

Как мне добиться того же поведения, что и у Haskell?

★★★★★

Последнее исправление: LongLiveUbuntu (всего исправлений: 1)

LongLiveUbuntu
LongLiveUbuntu
LongLiveUbuntu
LongLiveUbuntu
LongLiveUbuntu
LongLiveUbuntu
LongLiveUbuntu

haskell
haskell
haskell
haskell
haskell
haskell
haskell

C-C-C-COMBO BREAKER!

anonymous
()
Ответ на: комментарий от anonymous

Джаверы переходят на функциональщину. У Куки будет инфаркт.

anonymous
()
scala> val infList: Stream[Int] = 1 #:: infList
scala> infList take 3 toList
stateofart
()
Ответ на: комментарий от LongLiveUbuntu

ну в хаскеле ленивость как бы встроена и от неё никуда не деться... а в скале вот выбор. иногда ведь эта ленивость не нужна и только мешает.

stream для того и придуманы.

советую почитать вот эту книжку http://www.amazon.com/Programming-Scala-Comprehensive-Step-Step/dp/0981531644 и такие вопросы отпадут. там про это в том числе есть.

p.s. вопрос навстречу. а какую книжку посоветуете почитать по хацкелю?

BattleCoder ★★★★★
()
Ответ на: комментарий от BattleCoder

Да я только что начал его учить по тамошнему оффициальному мануалу.

А как по мне, понравилась книжка Липович «Изучай Хаскелль во имя добра».

Хотя для разработки в свете последних событий все же куда больше подойдет Скала, ИМХО.

LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от LongLiveUbuntu

Каких событий?

ну я вообще кодю на жабе, поэтому скала для меня не очень далеко. а хацкель совсем другой, тут надо сильно мышление перестроить. зато наверное для своих задач он таки лучше

BattleCoder ★★★★★
()
Ответ на: комментарий от BattleCoder

Скала более щадяща для моих мозгов, с другой стороны ее функциональщины мне вполне хватает.

LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от BattleCoder

ну в хаскеле ленивость как бы встроена и от неё никуда не деться...

4.2, и пожалуйста так больше не повторяйте.

p.s. вопрос навстречу. а какую книжку посоветуете почитать по хацкелю?

из простых - во имя добра можно почитать, но она достаточно поверхностная.

qnikst ★★★★★
()
Ответ на: комментарий от BattleCoder

да, лучше. хотя не то чтобы все.. но да - по другому.

qnikst ★★★★★
()
Ответ на: комментарий от BattleCoder

вопрос навстречу. а какую книжку посоветуете почитать по хацкелю?

Я учил по YAHT-у. Подозреваю, что он, хотя и старый как это самое, но всё ещё актуальный.

Рекомендуют RWH, но сам не читал.

Miguel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.