标签: proc

我的linux bash $$与/ proc/self链接不匹配?

我在RHEL 5上尝试/ proc这样:

$echo $$
50040

$ls -ld /proc/self
lrwxrwxrwx 1 root root 64 Jan 22 15:25 /proc/self -> 22485
Run Code Online (Sandbox Code Playgroud)

我期望/ proc/self链接到/ proc的子目录,这是我当前的进程ID.但$$显示进程ID是50040,而不是22485.为什么?

linux bash pid process proc

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

SAS:proc Summary和proc Sort

如果你将proc摘要与class-clause一起使用,它将按照这个类的顺序对你的观察结果进行排序.

proc summary data=One;
   by var_1;
   class var_2 var_3 var_4;
   output out = Two(drop= _freq_ _type_);
run;
Run Code Online (Sandbox Code Playgroud)

1)我是对的吗?

2)如果我没有指定所有字段会发生什么?

proc summary data = Three(keep= var_1 var_2 var_ 3 var_4 var_5 var_6);
   by var_1;
   class var_2 var_3;
   output out = Four(drop= _freq_ _type_ );
run;
Run Code Online (Sandbox Code Playgroud)

3)哪个处理更快:proc summaryproc sort

sorting sas proc

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

将块作为对象保存到变量中,而无需在 ruby​​ 中定义函数

我现在正在研究街区,它们难倒了我。

我用这个作为例子:

class ProcExample
  attr_reader :proc_class
  def initialize(&block)
    @stored_proc = block
    @proc_class = @stored_proc.class
  end
  def use_proc(arg)
    @stored_proc.call(arg)
  end
end

eg = ProcExample.new {|t| puts t}
p eg.proc_class
p eg.use_proc("Whoooooooo")
Run Code Online (Sandbox Code Playgroud)

现在我有点(不太明白)块是如何传递到@stored_proc中的。我使用@proc_class是因为我很好奇块对象实际上存储为哪个类。

但是如果我想将块存储在常规变量中怎么办?

例如:

block_object = {|param| puts param**2}
Run Code Online (Sandbox Code Playgroud)

但我发现这被视为哈希而不是块/过程。自然就会出现错误。我尝试在变量名中和块的开头用“&”号分配它,但这不起作用。

最后我想知道是否可以调用一个函数并用包含该块的变量替换该块。

就像这样:

(1..10).each block_object
Run Code Online (Sandbox Code Playgroud)

这在 Ruby 中可能吗?

ruby ruby-on-rails proc

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

在 Tcl 中查找命名空间的所有过程

让我们说我有一个命名空间。我想找到所有的命名空间过程。例如,假设我有以下代码:

namespace eval foo { 
   proc me {} { puts "yey!" }
   proc moo {} { puts "ney!" }
}
puts [ getAllNamespaceProcs foo ] ; # getAllNamespaceProcs is what I do not know how to do
Run Code Online (Sandbox Code Playgroud)

这应该产生:

> { me moo }
Run Code Online (Sandbox Code Playgroud)

谢谢。

namespaces introspection tcl proc

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

如何使用 TCL 从 proc 返回值

我有一个示例程序

      proc exam {return_value} {

        set input "This is my world" 
         regexp {(This) (is) (my) (world)} $input all a b c d 
         set x "$a $b $c $d" 
    return x }
Run Code Online (Sandbox Code Playgroud)

在执行上述过程之后,我将获得单个列表中的所有 abcd 值,因此,如果我只想要上述过程中的 b 值,现在正在执行 [lindex [exam] 1]。我正在寻找其他方式以不同的方式获取输出,而不是使用 lindex 或 returnun_value(b) 可以给出我的预期输出

arrays return list tcl proc

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

通过排序字段数组传递sort_by

如果我有一系列哈希

collection = [
  { first_name: 'john', last_name: 'smith', middle: 'c'},
  { first_name: 'john', last_name: 'foo', middle: 'a'}
]
Run Code Online (Sandbox Code Playgroud)

还有一系列我想要排序的键:

sort_keys = ['first_name', 'last_name']
Run Code Online (Sandbox Code Playgroud)

sort_by如果密钥始终与集合中的密钥匹配,我如何传递这些密钥?

我试过了

collection.sort_by { |v| sort_keys.map(&:v) }
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我相信我需要使用proc,但我不确定如何实现它.非常感谢任何帮助!

使用Ruby 2.2.1

ruby proc

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

PROC SQL SAS 中的长度和连接

我想在 select 语句中定义某些特定列的长度,并且想连接两列,sponsor idsponsorSAS proc sql 中的“ABC-123”。请帮助这是代码

proc sql;
select
    project_id,
    sponsor_id,

    empl_country,
    region,
    empl_dept_descr,
    empl_bu_descr,

    sponsor,
    full_name,
    mnth_name FROM Stage0;
quit;
Run Code Online (Sandbox Code Playgroud)

sas proc-sql proc

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

处理 SAS 中的舍入错误

我正在开发一个大型数据应用程序,并且遇到了似乎无法修复的舍入错误。代码基本上是这样的:

proc sql;
select round(amount,.01) - round(amount * (percentage/100),.01) as amount
from data;
quit;
Run Code Online (Sandbox Code Playgroud)

我尝试了各种修复方法,但所有似乎都会导致另一个方向出现其他舍入错误。对于产生错误量 = 56.45 和百分比 = 10 的行。我得到的结果等于 50.80,并希望结果等于 50.81。我无法接受舍入误差,因为有一个单独的过程可以反转没有舍入误差的交易,最终反转加上产生舍入误差的部分必须加起来为零。

我尝试过的代码:

select round((((100-percentage)/100)*amount), .01)
select round(amount,.01) - round(amount * (percentage/100),.001) as amount
Run Code Online (Sandbox Code Playgroud)

其中第二个解决了问题,但在另一个方向上产生了三个舍入误差。

非常感谢任何帮助。

谢谢。

sql database sas rounding proc

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

将proc作为块传递给方法

当我尝试将任意块传递给each_with_object方法时,会引发错误:

%w(foo bar baz).each_with_object([]) &->(i,m) { m << i.upcase }
# => NoMethodError: undefined method `&' for #<Enumerator: ["foo", "bar", "baz"]:each_with_object([])>
Run Code Online (Sandbox Code Playgroud)

当我尝试将块传递给inject方法时,它也会引发错误:

%w(foo bar baz).inject('') &->(m,i) { m + i.upcase }
# => NoMethodError: undefined method `' for "foo":String
Run Code Online (Sandbox Code Playgroud)

但是如果我没有传递初始值,它就有效:

%w(foo bar baz).split.inject &->(m,i) { m + i.upcase }
Run Code Online (Sandbox Code Playgroud)

当我将块传递给each方法时,它也可以工作.

%w(foo bar baz).each &->(i) { puts i.upcase }
# FOO
# BAR
# BAZ
Run Code Online (Sandbox Code Playgroud)

谁能解释这种行为?如何将任意块传递给前两个示例?

ruby proc

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

在 Ruby 中按符号名称调用私有方法

我有一个方法的符号名称,我想用一些参数调用它。我真正想做的归结为以下代码片段:

method.to_proc.call(method)
Run Code Online (Sandbox Code Playgroud)

在这种情况下,method是对象上方法的符号名称。就我而言,我试图调用一个恰好是对象私有的方法。

这是我得到的错误输出:

>$ ruby symbol_methods.rb 
symbol_methods.rb:33:in `call': private method `test_value_1' called for "value":String (NoMethodError)
    from symbol_methods.rb:33:in `block (2 levels) in <main>'
    from symbol_methods.rb:30:in `each'
    from symbol_methods.rb:30:in `block in <main>'
    from symbol_methods.rb:29:in `each'
    from symbol_methods.rb:29:in `<main>'
Run Code Online (Sandbox Code Playgroud)

这是一个演示此行为的自包含示例:

data = [
  ["value", true],
  ["any value here", true],
  ["Value", true],
]

def matches_value(string)
  string == "value"
end

def contains_value(string)
  string.gsub(/.*?value.*?/, "\\1")
end

def matches_value_ignore_case(string)
  string.downcase == "value"
end

#tests
[:matches_value, :contains_value, :matches_value_ignore_case].each_with_index do |method, index|
  test = data[index]
  value …
Run Code Online (Sandbox Code Playgroud)

ruby testing symbols dispatch proc

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