标签: let

SAS let声明:参考单元格值?

在SAS中,是否可以将%let语句引用到位于数据库中的值?

例如,my n in的值%let n=50取决于我的一个数据库中计算的某个值,例如,第一行加第一列.由于该值在我的循环中被修改了100次,我不想手动输入该值.

sas let

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

lisp迭代函数总是返回nil

此函数应该计算元素"a"出现在列表中但不起作用的次数:

(defun iter-a_count (lst)
   (let ((count 0))
        (dolist (x lst)
                (if (equal x 'a) 
                    (setf count (+ count 1)))
         count )))
Run Code Online (Sandbox Code Playgroud)

此函数始终返回nil.请问我哪里出错了?

lisp iteration let

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

Haskell在一个条件下定义多个变量?

好吧,我可能做错了,但它让我把头发拉了出来.我找不到任何可以做我想要的东西

拿这个伪代码

my_function left right
    = another_function new_left new_right (fourth_function new_left new_right)
        where new_left = if some_condition then left else third_function left
            new_right = if some_condition then third_function right else right
Run Code Online (Sandbox Code Playgroud)

我怎样才能避免重新检查some_condition?而且我不是在讨论some_condition作为where构造中的另一个变量保存.如果我把它lets放进去,if那么复制一下in another_function new_left new_right.

在命令式语言中,我可以做类似的事情

int new_left;
int new_right;
if (condition) {
    new_left = left;
    new_right = third_function(right);
} else {
    new_left = third_function(left);
    new_right = right;
}
return another_function(new_left, new_right, fourth_function(new_left, new_right));
Run Code Online (Sandbox Code Playgroud)

我知道在函数式语言中你不应该考虑按顺序做事,而是作为表达式的组合,所以我只是想找一种方法来编写原始的伪代码,这样就干了.这似乎是一个简单而相对常见的案例.

编辑

对困惑感到抱歉.我无法内联,third_function left/right因为我需要使用它的值两次(更新的伪代码).并且 …

haskell if-statement let where-clause

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

为什么不使用LET作为可选抛出错误,因为它是对Swift Intro书中的零 - 不一致的隐式比较?

我正在阅读Swift文档,并挂断了我认为文档不一致的内容.

报价1 - 控制流程部分

if语句中,条件必须是布尔表达式 - 这意味着诸如得分{...}之类的代码是错误,而不是与零的隐式比较.

因此严格的"布尔"将为TRUE或FALSE.

引用2 - 控制流程部分

您可以使用iflet一起使用可能缺少的值.这些值表示为选项.可选值包含值或包含nil以指示缺少值.在值的类型后面写一个问号(?)以将值标记为可选

var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {
    greeting = "Hello, \(name)"
}
Run Code Online (Sandbox Code Playgroud)

如果可选值为nil,则条件为false

因此,通过"布尔",它们似乎意味着"truthy/falsy",因为nil隐含地意味着错误

并跳过括号中的代码.否则,将解包可选值并在let之后其分配给常量,这使得在代码块内可用的展开值.

所以这里是我看到不一致的地方.在上面的代码示例中,由于optionalName具有值,因此该name变量被赋值为"John Appleseed".

因此,在比较中,我们最终得到了非布尔的表达 ; 特别是,"John Appleseed." 这是"真实的",但不是布尔值,这与第1点相矛盾!

换句话说 - 在代码中 - 在let中赋值后,我们有:

if "John Appleseed" {
    greeting = "Hello, \(name)"
} …
Run Code Online (Sandbox Code Playgroud)

conditional let optional swift xcode6

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

rspec 未定义的局部变量已被`let`

我需要测试一个文件是否包含特定的单词列表。

所以我在描述块中使用 let :

let (:test_rb_structure) { %w(nom, description, prix, rdv, validation, heure, creation) }
Run Code Online (Sandbox Code Playgroud)

我在同一个 describe bloc 中这样称呼它:

describe 'in app/controllers/api/v1/comptes.rb' do
  subject { file('app/controllers/api/v1/comptes.rb') }
  it { is_expected.to exist }
  # Test structure is respected
  test_rb_structure.each do |structure|
    it { is_expected.to contain(structure) }
  end
end
Run Code Online (Sandbox Code Playgroud)

我有这个错误:

undefined local variable or method `test_rb_structure'
Run Code Online (Sandbox Code Playgroud)

怎么了 ?我想不通。

ruby rspec let

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

因为循环不起作用?

当我在循环中使用时,它可以工作,并且对于循环只是没有得到任何东西:(这是我的代码

'use strict'

var match_table = [
  {'project': 'Laveral', 'template': 'Blade'},
  {'project': 'Ember.js', 'template': 'Handlebars'},
  {'project': 'Meteor', 'template': 'Handlebars'},
];

// count project number by template
var templateMap = new Array();
match_table.forEach(function(listItem){
  var template = listItem['template'];
  if (!templateMap[template]) {
    templateMap[template] = new Object();
  }
  templateMap[template]['name'] = template;
  if (templateMap[template]['count']) {
    templateMap[template]['count']++;
  } else {
    templateMap[template]['count'] = 1;
  }
});

//console.log(templateMap);

// for loop fails
for (let value of templateMap) {
  console.log(value);
}

templateMap.forEach(function(item) {
  console.log(item);
})
Run Code Online (Sandbox Code Playgroud)

也forEach不输出任何东西〜?!

javascript loops for-loop let

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

Haskell:让语句,将数据类型复制到自身,有/无修改不起作用

我想更新一个字段中的更改记录语法,所以我做了类似的事情:

let rec = rec{field = 1}
Run Code Online (Sandbox Code Playgroud)

但我注意到我不能再打印rec了,这意味着当我尝试时编译器似乎进入无限循环.所以我尝试过:

let a = 1 -- prints OK

let a = a -- now i can't print a (also stuck in a loop) 
Run Code Online (Sandbox Code Playgroud)

所以我不能let a = a用任何类型,但我不明白为什么,我应该如何解决这个问题.

顺便说一句:在做的时候:

let b = a {...record changes..}

let a = b
Run Code Online (Sandbox Code Playgroud)

有效,但似乎多余.

haskell let

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

let in 方案的语法

我无法理解let在我发现的示例中的这种用法。我正在使用鸡肉计划。

(let loop ()
    (print "hello world")
    (loop)
)
Run Code Online (Sandbox Code Playgroud)

这是一个简单的无限循环,它递归地调用自己,我无法理解的是语法。我知道第一个参数必须是一个成对列表,((<var[1]> <value[1]>)...(<var[n]> <value[n]))其他参数是 let 的主体。那么,为什么这个片段有效呢?

scheme loops let named chicken-scheme

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

为什么JavaScript的null合并运算符(||)不能用于es6变量(let/const)?

为什么var APP = APP || {};工作正常,但const APP = APP || {};不是?或者let APP = APP || {}就此而言.

Uncaught ReferenceError: APP is not defined
Run Code Online (Sandbox Code Playgroud)

因为这只与APP的评估有关,而不是与它的设定有关.

javascript var let null-coalescing-operator ecmascript-6

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

Haskell:在函数内的do块之后使用多个let并返回一个值

如标题所示,我想在do块之后返回一个值。

示例:编写一个将变量插入到数组中给定位置的函数:

insertAt :: a -> Int -> [a] -> [a]
insertAt x n xs = do
            let before = take n xs
            let after  = drop n xs
            let merged = before ++ [x] ++ after
            in  merged
Run Code Online (Sandbox Code Playgroud)

例如:

insertAt'x'3“ Aleander” =>“ Alexander”

无论如何,当使用单个let调用时,可以使用in关键字返回一个值,但是在示例中多次调用let会得到错误:

错误:解析输入“ in”中的错误

我知道我可以在一个let用法中完成全部操作,但是我想知道如何处理多个let调用:)

谢谢您的帮助!

haskell functional-programming let

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