personal experiences and code :)

Tuesday, May 20, 2008

loremipsum


object LoremIpsum {
def main(args:Array[String]) = {
println(words.length)
println(paragraphs.length)

println(paragraphs(6))
println("------>>")
println(words(400))
}

def words(n:Int):String =
words(n, words)


def paragraphs(n:Int):String =
paragraphs(n, paragraphs)


private def words(n:Int, xs:List[String]):String =
if (n <= xs.length)
("" /: xs.take(n)) (_ + " " + _)
else
words(n, xs ::: xs)


private def paragraphs(n:Int, xs:List[String]):String =
if (n <= xs.length)
("" /: xs.take(n)) (_ + "\n" + _)
else
paragraphs(n, xs ::: xs)



val text = """Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Integer faucibus leo ut lorem. Morbi interdum tellus ac felis. Etiam
pharetra dignissim enim. Class aptent taciti sociosqu ad litora torquent
per conubia nostra, per inceptos himenaeos. Aliquam odio. Maecenas
eleifend ipsum in risus. Aliquam dolor nibh, rhoncus sit amet, volutpat
eget, vestibulum a, odio. Lorem ipsum dolor sit amet, consectetuer
adipiscing elit. Phasellus ipsum. Nullam ligula leo, placerat id,
iaculis id, tempor non, mi. Sed eget justo sed massa vestibulum
scelerisque. Nullam turpis. Quisque quam. Ut sit amet diam. Nunc vitae
justo eget magna mollis iaculis. Ut tincidunt pretium nulla. Cras vel
massa ac sem tincidunt consectetuer. Sed a lorem. Ut condimentum, ipsum
a auctor ullamcorper, nibh neque adipiscing felis, vel elementum nibh
urna quis tellus. Vestibulum nunc est, congue sed, dapibus eu, sodales
vel, quam. Nullam et sem. Sed id leo at mi aliquet mollis. Curabitur
ante. Sed in nunc et orci imperdiet pulvinar. Ut laoreet. Praesent
pellentesque magna sed felis mattis imperdiet. Proin porttitor, felis ac
tempus fringilla, lorem urna sagittis lectus, vitae venenatis lectus
felis sit amet libero. Quisque ac dui. Sed augue sapien, fringilla ut,
pulvinar ac, pellentesque non, turpis. Maecenas tempus enim ac nulla.
Aenean urna augue, ultrices vel, rhoncus ut, lacinia lacinia, lectus.
Integer eleifend lectus ac nisl. Nulla tincidunt, velit ultrices blandit
blandit, arcu felis euismod justo, eu lobortis lacus ligula sed turpis.
Proin quam. Praesent volutpat. Vivamus molestie purus vitae orci.
Pellentesque dignissim augue id mi. Maecenas adipiscing tortor. Integer
mi tortor, consequat eget, porttitor accumsan, pulvinar ut, augue.
Nullam cursus viverra tortor. Donec tincidunt faucibus eros. Vestibulum
turpis mi, pellentesque ac, gravida a, egestas eget, massa. Nullam massa
purus, accumsan sed, fringilla ac, ornare nec, mauris. Nunc nisi nibh,
malesuada vitae, porta a, placerat in, elit. Fusce feugiat dolor vitae
quam. Sed malesuada elit non ante. Sed a sapien. Class aptent taciti
sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
Aenean massa. Nulla erat velit, fringilla sit amet, varius vitae,
egestas ac, eros. Aliquam adipiscing facilisis turpis. Aliquam erat
volutpat. Donec semper ipsum id lorem. Proin ligula risus, dignissim in,
feugiat non, tristique ac, mi. Donec placerat sem quis nibh. Nullam
auctor. Etiam mi velit, gravida et, congue non, imperdiet id, libero. Ut
lorem. Vestibulum aliquam vehicula leo. Etiam et ante. Maecenas nulla.
In hac habitasse platea dictumst. Vivamus lorem sapien, blandit ut,
congue et, ultrices nec, dolor. Suspendisse potenti. Curabitur quis mi.
Pellentesque semper arcu quis nulla. Pellentesque tristique, lacus eget
placerat ullamcorper, erat pede laoreet erat, ac adipiscing purus tortor
in leo. Donec scelerisque. Curabitur orci urna, convallis eu,
ullamcorper in, posuere non, augue. Donec libero augue, ullamcorper
vitae, malesuada vitae, lacinia a, purus. Cum sociis natoque penatibus
et magnis dis parturient montes, nascetur ridiculus mus. Fusce vitae
diam in lorem pulvinar mollis. Morbi pretium risus. Aenean ut erat. In
velit leo, interdum ac, suscipit vitae, malesuada ac, risus. Aliquam et
turpis ac augue ornare pharetra. Vivamus augue lectus, tempus ut,
lacinia nec, gravida et, lacus. Donec sodales placerat magna. Curabitur
vitae sem."""


val words = text.split("\\s").toList
val paragraphs = text.split("\\n").toList
}

Tuesday, May 06, 2008