小编Con*_*cer的帖子

为什么我需要这里的类型注释?

在以下代码中:

type ParseResult<'a> =
    {
        Result : Option<'a>;
        Rest : string
    }

type Parser<'a> = string -> ParseResult<'a>

let ThenBind p (f : Option<'a> -> Parser<'b>) : Parser<'b> =
    fun input ->
        let r = p input
        match r.Result with
        | None -> { Result = None; Rest = input }
        | _ -> (f r.Result) r.Rest
Run Code Online (Sandbox Code Playgroud)

使用f的类型注释,ThenBind的类型是:

p:(string -> ParseResult<'a>) ->
f:(Option<'a> -> Parser<'b>) ->
input:string -> ParseResult<'b>
Run Code Online (Sandbox Code Playgroud)

但没有注释,它是:

p:(string -> ParseResult<'a>) ->
f:(Option<'a> -> string -> ParseResult<'b>) -> …
Run Code Online (Sandbox Code Playgroud)

f#

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

为什么这个程序不会终止?

java新手,但我无法弄清楚为什么这个程序不会终止:

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;

class Main {
    public static void main(String[] args) {
        ScheduledExecutorService ex = Executors.newScheduledThreadPool(100);
        ex.submit(() -> { System.out.println("."); });
    }
}
Run Code Online (Sandbox Code Playgroud)

java executorservice

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

c ++的新手,你能解释一下这个构造函数的语法吗?

这可能是非常基本的,但是从.Net背景来看,语法对我来说有点陌生.我正在尝试学习c ++来做一些爱好游戏开发,我在教程中遇到了这一行:

sf::RenderWindow window(sf::VideoMode(800, 600), "My Game");
Run Code Online (Sandbox Code Playgroud)

对我来说,这看起来像RenderWindow可能是sf类的静态方法而窗口是实例名称?我无法搞清楚这一点或为谷歌提出良好的搜索条件.任何人都可以为我打破这一行吗?

此外,随意重命名标题,我不知道如何描述这一行,所以我无法想出一个描述性的标题.

c++

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

为什么(参数中的var i)不起作用?

我是JavaScript的新手.我试图弄清楚为什么这不起作用:

function myFunction(){
    document.getElementById("result").value=add(1,2);
}
function add(){
    var sum = 0;
    for(var i in arguments)
        sum += i;
    return sum;
}
Run Code Online (Sandbox Code Playgroud)

这输出001.为什么?

javascript arguments loops key-value

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

以不同格式复制和粘贴

我有一个数据网格,我希望能够复制和粘贴到excel.很常见的情况.我实现了复制和粘贴功能.但是,这个应用程序有几个datagrids,我想阻止用户尝试将数据从一个网格复制到另一个网格,因为数据不同.

我可以将这些网格中的对象序列化为我想要的任何格式,因此添加一些"只有这个数据才能进入该网格"的元数据是微不足道的.但是我无法添加元数据,因为它会显示在excel中.是否有一些解决方案可以让我在我的应用程序中以一种格式粘贴数据,但是excel仍能正确处理?

c#

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

对象/实例私有访问的重点是什么?

在Scala中,您可以使用私有变量创建对象,这些变量只能由对象的声明实例访问.

class Counter {
    private[this] var value = 0

    def isLess( other : Counter) = value < other.value // syntax error
}
Run Code Online (Sandbox Code Playgroud)

为什么这有用?

scala

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

确定的算法是一个点是沿着一条线还是非常接近

好的,我有一个使用绘图系统绘制线条的应用程序.每条线A,B以纬度/经度格式定义.当用户点击地图时,给我的所有内容都是单点C,用户点击了lat/lon格式.我想让用户通过点击选择地图上的线条.问题是,由于缩放级别不同,用户很难完全沿着这条线点击.我能想到的最好的是它们在我定义的某个阈值距离内点击.如何判断用户是否已点击或合理地接近仅提供此信息的行?

我对算法有一个粗略的想法,但我没有充实它,我不确定它是否是最有效的方法.由于屏幕上可能随时有很多行,因此算法需要相当快.

到目前为止我想出的是首先检查距离AC和BC.如果任一距离大于AB,则用户未单击该行.如果它通过了这个检查,那么我计算角度CAB和CBA.如果C正好在线上,那么两个角度都应该是0,我认为,我的三角形有点生锈.否则,为了确定C是否"足够接近",我将选择两个计算角度中的最小角度,并查看它是否低于某个预定义阈值.

我是在正确的轨道还是离开?有更好的想法吗?

c# mapping trigonometry distance

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

Python:函数/方法(如sort)来自哪里?

我是python的新手.我有这个示例程序:

def main():
  a = [4,2,1,6]
  b = sorted(a)

  for i in b:
    print i
Run Code Online (Sandbox Code Playgroud)

排序来自哪里,或者这是某种python关键字?与印刷相同的问题我.顺便说一句,这是python 2.7.

python python-2.7

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