-2
Im新的斯卡拉,但我知道一些功能編程感謝Haskell和我正在尋找一些例子,你能告訴我這將是如何在斯卡拉?Haskell to Scala
scalarProduct :: [Int] -> [Int] -> Int
scalarProduct [] _ = 0
scalarProduct _ [] = 0
scalarProduct (x:xs) (y:ys) = if length(xs) == length (ys) then x*y + scalarProduct xs ys else 0
lessThan :: [Float] -> Float -> Int
lessThan [] _ = 0
lessThan (x:xs) n = if x < n then 1 + lessThan xs n else lessThan xs n
removeLast :: [a] -> [a]
removeLast [] = []
removeLast (x:xs) = if length(xs) == 0 then [] else [x] ++ removeLast xs
funcion :: Int -> Float
funcion x | x >= 6 = fromIntegral(product[9..x*2])
| x > 0 = fromIntegral(x) ** (1/4)
| x <= 0 = fromIntegral(product[1..(-x)]) * 5.0**fromIntegral(x)
我會從這裏開始看這裏http://docs.scala-lang.org/cheatsheets/它的一個相當不錯的快速參考指南,如果這就是你感興趣的。 – user1875195
不要試圖通過翻譯來學習一門語言從另一個:你可能會產生非慣用代碼。是的,一些Haskell模式可以被翻譯,但是我會從一開始就從Scala教程開始。 – chi
'removeLast'可以用'init'完成。即'List(1,2,3).init'是'List(1,2)'。 – Brian