我正在尝试做类似的事情
seq { 1..100 }
|> Seq.sum
|> pown 2
Run Code Online (Sandbox Code Playgroud)
它甚至没有编译因为pown期望'T ^'参数作为第一个参数而我将它作为第二个参数,因为这是管道的默认行为.通过谷歌搜索我没有找到制作"pown"的方法使用管道携带的参数作为它的第一个arg.也许它有一些默认名称?
如何使用STANDARD UNIX UTILITIES编写程序,该程序将一次从标准输入一个字符读取数据,并将结果输出到标准输出.我知道它的运行类似于本例中的C程序.有人告诉我,这可以在一行代码中完成,但从未完成过Unix管道编程,所以我只是很好奇.该程序的目的是从标准输入读取数据并计算一行中的行数和标准输出中的单词和行的总数
我想出了以下代码,但我不确定:
tr A-Z a-z < file | tr -sc a-z | sort uniq -c wc '\n'
关于我如何得到我想要的任何想法或建议?
我开始学习F#。我发现很难从OO编程中改变主意。我想知道F#开发人员将如何编写以下内容:
“传统” C#
public List<List<string>> Parse(string csvData){
var matrix = new List<List<string>>();
foreach(var line in csvData.Split(Environment.NewLine.ToArray(), StringSplitOptions.None)){
var currentLine = new List<string>();
foreach(var cell in line.Split(','){
currentLine.Add(cell);
}
matrix.Add(currentLine);
}
return matrix;
}
Run Code Online (Sandbox Code Playgroud)
“功能性” C#
public List<List<string>> Parse(string csvData){
return csvData.Split(Environment.NewLine.ToArray(), StringSplitOptions.None).Select(x => x.Split(',').ToList()).ToList();
}
Run Code Online (Sandbox Code Playgroud)
问题是:下面的代码是否正确?
F#
let Parse(csvData:string) =
csvData.Split(Environment.NewLine.ToArray(), StringSplitOptions.None).ToList()
|> Seq.map(fun x -> x.Split(',').ToList())
Run Code Online (Sandbox Code Playgroud) 我设法管道多个HGETALL命令,但我无法将它们转换为字符串.
我的示例代码是这样的:
// Initialize Redis (Redigo) client on port 6379
// and default address 127.0.0.1/localhost
client, err := redis.Dial("tcp", ":6379")
if err != nil {
panic(err)
}
defer client.Close()
// Initialize Pipeline
client.Send("MULTI")
// Send writes the command to the connection's output buffer
client.Send("HGETALL", "post:1") // Where "post:1" contains " title 'hi' "
client.Send("HGETALL", "post:2") // Where "post:1" contains " title 'hello' "
// Execute the Pipeline
pipe_prox, err := client.Do("EXEC")
if err != nil {
panic(err)
} …Run Code Online (Sandbox Code Playgroud) 我有这个脚本:
1..10|%{
$_
if(($_ % 3) -eq 0)
{
"wow"
break
}
}
"hello"
Run Code Online (Sandbox Code Playgroud)
我期望从1到10,在遇到3时会显示“哇”,最后显示“你好”,但实际输出是:
1
2
3
kkk
Run Code Online (Sandbox Code Playgroud)
因此,“ break”似乎没有破坏管道中的%{}循环,而是破坏了整个程序?如何在继续执行后续语句的同时中断循环?
谢谢。
library(magrittr)
x <- 2
x %<>%
add(3) %>%
subtract(1)
x
Run Code Online (Sandbox Code Playgroud)
是否有预定义的更易读的方式与管道一起使用?
也许是这样的 x %+=% 3 %-=% 1
使用BizTalk 2013r2 CU1,我为我的入站xsd创建了一个属性模式并部署了该应用程序.
当我使用标准的"xml接收"管道收到样本xml文档时,我可以看到所需的元素按预期被提升到上下文中.
然后,我创建了一个自定义管道,其中包含"Disassemble"阶段中的"XML反汇编程序"组件和"验证"阶段中的自定义组件.此自定义组件需要从上下文中读取提升的属性.但是,我发现当我将接收位置从"xml接收"管道切换到我的自定义管道时,我的属性不会被提升.我在自定义组件中使用以下代码来写出消息上下文中的项列表:
for (int x = 0; x < contextList.CountProperties; x++)
{
contextList.ReadAt(x, out name, out nspace);
string value = contextList.Read(name, nspace).ToString();
contextItems += "Name: " + name + " - " + "Namespace: " + nspace + " - " + value + "\r\n";
if (name == _ContextPropertyName && nspace == _ContextPropertyNamespace)
promotedPropFound = true;
}
Helpers.EventLogHelper eventHelper = new EventLogHelper();
eventHelper.LogEvent(string.Format("Context items:{0}", contextItems));
if (promotedPropFound == false)
throw new Exception(string.Format("Unable to find promoted property with …Run Code Online (Sandbox Code Playgroud) 我有以下情况:
CREATE OR REPLACE FUNCTION GET_CURSOR_PIPELINE(placeholder IN NUMBER)
RETURN MY_RECORD_TYPE PIPELINED IS
TYPE CURSOR_TYPE IS REF CURSOR;
myCursor CURSOR_TYPE;
TYPE RECORD_TYPE IS RECORD(
record_id NUMBER,
firstname VARCHAR(50)
);
resultSet RECORD_TYPE;
BEGIN
OPEN myCursor FOR
SELECT 1, 'Scott' FROM DUAL
UNION
SELECT 2, 'Tiger' FROM DUAL;
IF (myCursor IS NOT NULL) THEN
LOOP
FETCH myCursor INTO resultSet;
EXIT WHEN myCursor%NOTFOUND;
PIPE ROW (MY_RECORD_OBJ(
resultSet.record_id,
resultSet.firstname
));
END LOOP;
CLOSE myCursor;
END IF;
END GET_CURSOR_PIPELINE;
Run Code Online (Sandbox Code Playgroud)
我的生产代码和上面的示例之间的唯一区别是我需要从真实表中获取大约20个字段,而不仅仅是来自DUAL的2个字段.
我想避免使用锅炉代码,我必须明确列出所有涉及的字段.上面的函数工作正常,但我必须定义所有涉及的字段3次.该拳的时间,当我将返回类型定义.
CREATE …Run Code Online (Sandbox Code Playgroud) echo aaa > >(echo $(cat))
Run Code Online (Sandbox Code Playgroud)
在我看来,它应该打印"aaa"然后退出,但除非我按下回车键,否则它会停止,为什么?
谢谢
在管道中将值传递给函数的第二个参数的正确方法是什么?
例如
async {
let! response =
someData
|> JsonConvert.SerializeObject
|> fun x -> new StringContent(x)
|> httpClient.PostAsync "/DoSomething"
|> Async.AwaitTask
}
Run Code Online (Sandbox Code Playgroud)
上面的代码PostAsync中包含2个参数,即要发布到的url和要发布的内容。也尝试过后管和括号,但无法弄清楚该怎么做
有任何想法吗?