小编Chi*_*ble的帖子

f# 在 list.iteri 中执行 await 异步方法

我在 F# 4.0 中有以下代码

let processEscalation escalationAction (escalationEvents:UpdateCmd.Record list) =
    printf "%A" Environment.NewLine
    printf "Started %A" escalationAction
    escalationEvents
    |> List.iter ( fun x -> 
        printf "%A" Environment.NewLine
        printf "escalation %A for with action: %A" x.incident_id escalationAction
        service.PostAction(new Models.Action(x.incident_id, escalationAction, "escalated")) 
        |> Async.AwaitTask
        |> ignore)


let ComposeEscalation() = 
    let escalationlevels = ["ESC1 REACHED"; "ESC2 REACHED"; "ESC3 REACHED"]
    escalationlevels 
    |> List.map getEscalationEvents
    |> List.iteri (fun i x -> processEscalation escalationlevels.[i] x)
Run Code Online (Sandbox Code Playgroud)

其中以下行是对返回 Task 的 C# 异步方法的调用

service.PostAction(new Models.Action(x.incident_id, escalationAction, "escalated"))
Run Code Online (Sandbox Code Playgroud)

compose escalation …

f# asynchronous c#-to-f#

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

R group by 显示所有因子水平的计数,即使 dplyr 为零

set.seed(1)
dat <- data.frame(ID = sample(letters,50,rep=TRUE))
dat %>% 
  group_by(ID) %>%
  summarise(no_rows = length(ID))
Run Code Online (Sandbox Code Playgroud)

我有上面的代码,它创建了一个随机的字母样本。但是,即使为零,我也可以使汇总输出显示所有计数级别。

当我运行上面的代码时,有时会得到 20 行,有时会得到 25 行,等等。我希望每次都返回 26 行。

r dplyr

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

F#如何根据谓词而不是固定长度对序列进行窗口化

鉴于以下输入序列,我想生成所需的输出。我知道如果所有窗口都是固定长度,则 Seq.window 几乎可以用来获得所需的结果。但是,在这种情况下,它们不是固定长度,每当遇到“a”时,我想开始一个新序列。标准收藏库可以做到这一点吗?

let inputSequence = 
      ["a"; "b"; "c";
       "a"; "b"; "c"; "d";
       "a"; "b"; 
       "a"; "d"; "f";
       "a"; "x"; "y"; "z"]

let desiredResult = 
   [["a"; "b"; "c";]
    ["a"; "b"; "c"; "d";]
    ["a"; "b"; ]
    ["a"; "d"; "f";]
    ["a"; "x"; "y"; "z"]]
Run Code Online (Sandbox Code Playgroud)

f#

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

F#要么monad(ROP)要用两个参数组成函数

我使用辅助函数的chessie库来做ROP(monad) https://github.com/fsprojects/Chessie/blob/master/src/Chessie/ErrorHandling.fs

但是我不确定如何简洁地将以下三个功能组合在一起.其中twoInputFunc应该只有FUNC1和FUNC2返回成功进行评估.

val func1 : int -> Result<Tp1, 'a>
val func2 : string -> Result<Tp2, 'a>
val twoInputFunc : par1:Tp1 -> Tpar2:Tp2 -> Result<Ta,'a>
Run Code Online (Sandbox Code Playgroud)

f# functional-programming

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

标签 统计

f# ×3

asynchronous ×1

c#-to-f# ×1

dplyr ×1

functional-programming ×1

r ×1