在你激怒我之前,我已经完成了我的研究(Javascript ENV变量).我知道使用Javascript无法访问系统环境变量.
我正在使用Yeoman开发一个Javascript库.该库适用于Google Maps API,我的部分测试要求将Google Maps API作为依赖项. 要加载Google Maps API脚本,您需要一个API密钥. 现在,我的代码位于我的Github上,我真的不希望我的API密钥作为代码的一部分.
在运行Grunt时是否有任何Node模块可以将环境变量注入我的测试中?Node.js中是否有ENV变量等价物?
这是需要JS ENV变量解决方案的示例.还有其他解决问题的方法,但我特意寻找这种类型的解决方案.
编辑:最重要的是,当我使用grunt运行测试时,如何将这些ENV变量自动加载到我的程序中
谢谢!
所以我正在为我的一个计算类回答一个问题.我开发了一种算法,然后它问我算法的复杂性.我目前不太擅长确定复杂性,所以任何人都可以验证吗?
代码如下:
if( A.type is not Comparable ): return False // Max runs = 1
current ? A.head // Max runs = 1
printedFirst ? False // Max runs = 1
while( current.hasNext ): // Max runs = s-1
if ( current.value < current.next.value ): // Max runs = s-1
if ( printedFirst ): print “, “ // Max runs = s-1
print “(“ + current.value + “, “ + current.next.value + “)” //runs = s-1
printedFirst ? True // …Run Code Online (Sandbox Code Playgroud) 所以我使用格雷码生成器生成长度为6的所有可能的位串.生成器如下:
gray :: Integer -> String
gray n
| n == 0 = [""]
| n > 0 = map (++"0") (gray (n-1)) ++
map (++"1") (reverse (gray (n-1)))
recipes = gray 6
Run Code Online (Sandbox Code Playgroud)
然后,我试图从每个字符串中获取一个特定的位并将该位转换为整数.我是通过以下方式做到这一点的:
cost' :: String -> Cost
cost' r i = toInteger( ord ( r!!i ) )
Run Code Online (Sandbox Code Playgroud)
现在,出于某种原因,这是行不通的.无论我使用什么'i'值,函数cost'将导致48(如果列表中位置2的位为0 - > ex.'100000')或49(如果位置2中的位)列表是1 - >例如'101000').
这对我来说没有任何意义.这是我的理解,Strings在Haskell中存储为列表,并且为了从Haskell中的列表'r'获得某个元素'i',你执行'r! !一世'.
所以我有一个项目列表(食谱),我想根据规则集过滤,
ruleset = [rule0, rule1, rule2, rule3, rule4]
Run Code Online (Sandbox Code Playgroud)
每个规则都是一个函数:: Recipe - > Bool.我想将这些规则应用于列表中的每个项目,我一直在使用以下函数:
testRules :: Recipe -> Bool
testRules r = rule0 r && rule1 r && rule2 r && rule3 r && rule4 r
Run Code Online (Sandbox Code Playgroud)
必须有一种方法来应用数组而不明确说"rule0 && rule1 && ..."
有谁知道吗?我知道'map'将一个函数应用于列表..而zipWith将数组乘以数组..必须有另一个函数来执行此任务!
我一直在想,也许我可以将规则集作为参数传递给testRules并递归地遍历规则集:
testRules (rule:rules) r = rule r && testRules rules
testRules [] r = True
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何提供函数的头部(testRules ::)
欢呼任何帮助!