小编Ric*_*nne的帖子

Ruby块隐式变量

我想知道Ruby是否有像Scala中那样的隐式块参数或通配符,可以绑定并用于进一步执行,如下所示:

my_collection.each { puts _ }
Run Code Online (Sandbox Code Playgroud)

要么

my_collection.each { puts }
Run Code Online (Sandbox Code Playgroud)

有一些类似于proc的符号,它从集合中调用每个元素的一些方法,如:array_of_strings.each &:downcase,但我不想在循环中执行对象的方法,而是使用此对象作为参数执行一些函数:

my_collection.each { my_method(_) }
Run Code Online (Sandbox Code Playgroud)

代替:

my_collection.each { |f| my_method(f) }
Run Code Online (Sandbox Code Playgroud)

在Ruby中有没有办法做到这一点?

ruby lambda block

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

Ocaml 对整数列表中的值求和

我在下面的代码中遇到语法错误:

let sum list =
let current_sum = List.hd list in
for i = 1 to List.length list - 1 do
let counter = List.nth list i
    current_sum = current_sum + counter 
done;;
Run Code Online (Sandbox Code Playgroud)

我面临的错误在这里

done;
^^^^
Error: Syntax error
Run Code Online (Sandbox Code Playgroud)

代码应该在每次迭代时总结列表的当前值,例如

sum [1;2;3;4];;
- : int list = [1; 3; 6; 10]
Run Code Online (Sandbox Code Playgroud)

所以我认为我正在朝着正确的方向前进,我不明白为什么这个错误不断出现?

syntax ocaml

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

在OCaml中使用GADT时,如何删除函数中的"不太通用的定义"错误消息?

我最近在OCaml一直在与GADT挣扎.我正在尝试为一种简单的语言编写一个解释器,使用不同的术语:

type (_, _) term =
  | Const : lit -> (state, value) term
  | Var : ident -> (state, value) term
  | Plus : expr * expr -> (state, value) term
  | Equ : expr * expr -> (state, value) term
  | Neg : expr -> (state, value) term
  | Skip : (state, state) term
  | Asn : ident * expr -> (state, state) term
  | Seq : stat * stat -> (state, state) term
  | If : expr …
Run Code Online (Sandbox Code Playgroud)

ocaml functional-programming algebraic-data-types gadt

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

OCaml评估表达式,命令?

add 是一个内置于OCaml的函数.

经验:

# add 5 1;;
- : int = 6
Run Code Online (Sandbox Code Playgroud)

我的问题:评估的顺序是add 3 (add 5 3)什么?

# add 3 (add 5 3);;
- : int = 11
Run Code Online (Sandbox Code Playgroud)

(add 5 3)第一至8评价,然后add 3 (8)进行评估,以11?或者add 3先评估一个函数,然后(add 5 3)用作函数的参数(add 3)

谢谢.

evaluation ocaml expression

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

如何更改ActionBar Tab textStyle?

默认情况下,android actionBar Tab的文本样式为CAPITAL.如何将文本样式设置为普通的驼峰式样式.像"Abcd"而不是"ABCD"(这是默认的样式)

android

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

结合@Provides和@Inject

我最近遇到了一些在同一方法上使用@Provides@Inject注释的代码.此方法有两个非基本参数和一个非void返回类型.

我想知道将这两者结合使用是否合理.从我可以收集/推测的内容来看,它似乎@Inject被用于使用Guice构造方法依赖项,而@Provides用于绑定返回类型.任何想法,将不胜感激.

guice

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

在(K)Ubuntu 17.10上安装ruby 2.4的最佳方法是什么?

我运行Kubuntu,并想安装最新的稳定Ruby版本,截至撰写时为2.4.2。不幸的是,Ubuntu有点落后:17.10具有以下功能:

$ ruby --version  
  ruby 2.3.3p222 (2016-11-21) [x86_64-linux-gnu]  
$
Run Code Online (Sandbox Code Playgroud)

我在Google上搜索了很多建议,但这些建议都不是优雅的。我不想使用rvm(它没有任何问题-我只想更新我的“基本”红宝石)。从源代码构建是可以的,除了它至少默认为安装在/ usr / local下的某个位置,并将旧版本保留在原位。我想升级到2.4.2-可能使用rvm安装2.5。

我已经尝试过在下面的评论中使用建议。PPA似乎没有2.4。当我使用apt install ruby​​ 2.4 *时,*是正则表达式,因此匹配2. {anything_or_nothing},因此尝试拉入2.3,这不是我想要的-例如

$ sudo apt install ruby2.4*
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'ruby2.3' for regex 'ruby2.4*'
Note, selecting 'uwsgi-plugin-rack-ruby2.3' for regex 'ruby2.4*'
Note, selecting 'ruby2.3-dev' for regex 'ruby2.4*'
Note, selecting 'ruby2.3-doc' for regex 'ruby2.4*'
Note, selecting 'libruby2.3' for regex 'ruby2.4*'
Note, selecting 'ruby-ruby2ruby' for regex 'ruby2.4*'
Note, selecting 'ruby2.3-tcltk' for regex 'ruby2.4*'
libruby2.3 is already …
Run Code Online (Sandbox Code Playgroud)

ruby linux ubuntu

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

不使用 ArrayList 将 2D 数组转换为 1D 数组

创建将二维数组转换为一维数组的函数

但是在声明时一维数组的大小如何为新的一维数组提供大小

int[] convert(int[][] input){
    int[] result;
    int z=0;
    for(int row=0;row<input.length;row++) {
        for(int col=0;col<input[row].length;col++) {
            result[z]=input[row][col];
            z++;
        }
    }
    return result;/* Error comes here For Initialization. How to initialize before Knowing size*/
}
Run Code Online (Sandbox Code Playgroud)

java arrays multidimensional-array

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

OCaml初学者需要帮助:出了什么问题?

码:

let rec get_val (x, n) = match x with
    [] -> -1
  | if (n=0) then (h::_) -> h 
    else (_::t) -> get_val(t, n-1)
;;
Run Code Online (Sandbox Code Playgroud)

错误信息:

Characters 55-57:
| if (n=0) then (h::_) -> h 
  ^^
Error: Syntax error
Run Code Online (Sandbox Code Playgroud)

ocaml

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