Tag-Archive for » scala «

szerda, június 02nd, 2010 | Author:

For those of you have experience with other web frameworks such as Struts, Tapestry, Rails, et cetera, you must be asking yourself “Why another framework? Does Lift really solve problems any differently or more effectively than the ones I’ve used before?” Based on our experience (and of others in the growing Lift community), the answer is an emphatic “Yes!”

Kulonosebb magyarazatot nem kivan.

Category: Hobbi  | Tags: ,  | Leave a Comment
péntek, január 22nd, 2010 | Author:

Belefutottam egy ilyen hibába tegnap Scala-ban:

scala> def func():String = {
     |   for(i <- 1 to 2) {
     |     println("do something here")
     |   }
     | }
<console>:5: error: type mismatch;
 found   : Unit
 required: String
         for(i <- 1 to 2) {
             ^

A hiba látszólag a i változó típusa. A valóságban az i teljesen jó, a hiba a for ciklus visszatérési értéke. A Scala a függvény utolsó kiértékelt kifejezését használja visszatérési érték gyanánt, és a ciklus ebben az esetben nem ad vissza semmit, szemben a függvény String visszatérési értékével.

Category: Hobbi, Szakmai  | Tags:  | Leave a Comment
csütörtök, január 21st, 2010 | Author:

Az előző bejegyzésben írt feladat megoldása Scala-ban:

Update: átírtam kicsit a jobb érthetőség kedvéért.

package calc

object Calc {
    def main(args: Array[String]) {
        var str = ""
        var limit = if (args.length > 0) args(0).toInt else 10
        for(i <- 0 to limit) {
            str = calcNext(str)
            println(str)
        }
    }

    def calcNext(in:String):String = {
        in match {
            case "" => "1"
            case _ => {
                    val init = (0, in(0), "")
                    val (_, _, value) = ( init /: (in + " ") ) { calcNextStr }
                    value
                }
        }
    }

    def calcNextStr( t:(Int, Char, String), next:Char ) = {
        val (count, ch, aggr) = t
        if(ch == next) {
            (count+1, next, aggr)
        } else {
            (1, next, aggr + count.toString + ch)
        }
    }
}

Az eredmény pedig 5 elemre:
1
11
21
1211
111221
312211

Category: Hobbi  | Tags:  | Leave a Comment