小编Lee*_*eeG的帖子

Scala列表理解

我正在尝试根据公式生成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 yield list-comprehension scala-2.9

6
推荐指数
2
解决办法
3081
查看次数

Scala Bash测试脚本

我正在尝试编写一个简单的批处理脚本来测试我的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)

按预期工作.

我在这做错了什么?

- 李

bash scala

2
推荐指数
1
解决办法
305
查看次数

如何在Either monad的上下文中使用Data.Map.lookup?

我正在尝试使用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)

haskell either maybe

1
推荐指数
2
解决办法
1108
查看次数

标签 统计

scala ×2

bash ×1

either ×1

haskell ×1

list-comprehension ×1

maybe ×1

scala-2.9 ×1

yield ×1