我正在尝试根据公式生成scala中的列表:
for n > 1 f(n) = 4*n^2 - 6*n + 6 and for n == 1 f(n) = 1
Run Code Online (Sandbox Code Playgroud)
目前我有:
def lGen(end: Int): List[Int] = {
for { n <- List.range(3 , end + 1 , 2) } yields { 4*n*n - 6*n - 6 }
}
Run Code Online (Sandbox Code Playgroud)
对于end = 5,这将给出列表:
List(24 , 76)
Run Code Online (Sandbox Code Playgroud)
现在我一直试图找到一种优雅的方式让这个功能给
List(1 , 24 , 74)
Run Code Online (Sandbox Code Playgroud)
任何建议将不胜感激.
- 李
我正在尝试编写一个简单的批处理脚本来测试我的Scala程序.脚本应该是这样的:
#!/bin/bash
scala ./build/classes/MyClass "../../res/some_file.txt"
Run Code Online (Sandbox Code Playgroud)
返回:
Exception in thread "main" java.lang.RuntimeException: Cannot figure out how to run target: ./build/classes/MyClass
Run Code Online (Sandbox Code Playgroud)
如果我在classes目录中运行:
#!/bin/bash
scala MyClass "../../res/some_file.txt"
Run Code Online (Sandbox Code Playgroud)
按预期工作.
我在这做错了什么?
- 李
我正在尝试使用Data.Map将字符串映射到函数.我遇到的问题是我的程序中的主要错误处理使用了Either monad,Map.lookup并将返回Maybe ([SomeVal] -> Either ValError SomeVal).我怎样才能使Map.lookup在这种情况下,无论是单子发挥很好?
apply :: String -> [SomeVal] -> Either ValError SomeVal
apply s args = (Map.lookup s prims) >>= \fn -> fn args
prims :: Map String ([SomeVal] -> Either ValError SomeVal)
prims = Map.fromList
[("key", function)
,("key2", function2)
]
::> apply "key" [val1, val2, val3]
Run Code Online (Sandbox Code Playgroud)