小编Ada*_*gle的帖子

如何禁用消息“您只能使用 Microsoft .NET Core 调试器...”?

我在 Ubuntu 19.10 上运行 Visual Studio Code 1.42.1,使用默认的 C# 扩展版本 1.21.11。

每当我使用“开始调试”或什至通过“不调试运行”启动 C# 程序时,我都会在输出窗口中看到以下消息:

-------------------------------------------------------------------
You may only use the Microsoft .NET Core Debugger (vsdbg) with
Visual Studio Code, Visual Studio or Visual Studio for Mac software
to help you develop and test your applications.
-------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

这个消息很烦人。有什么办法可以禁用它吗?

c# visual-studio-code vscode-debugger

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

如何使用nuget中的包在Mono中构建C#程序?

我在Ubuntu 17.10上使用Mono 5.4.1.7编写C#代码。

这是我想从命令行执行的所有操作:

  1. 使用NuGet安装软件包(特别是MathNet.Numerics)。
  2. 编译一个使用该包中的类的C#程序。
  3. 运行程序。

但是我看不到任何简单的方法可以做到这一点,所以我一定会缺少一些东西。

这是我尝试过的。我为程序创建了目录“ foo”。在那个目录里,我跑了

$ nuget install MathNet.Numerics
Run Code Online (Sandbox Code Playgroud)

那下载了MathNet.Numerics库并将其放在子目录'MathNet.Numerics.3.20.2'中。到目前为止,一切都很好。

然后,我创建了测试程序foo.cs,如下所示:

using MathNet.Numerics.LinearAlgebra;
using MathNet.Numerics.LinearAlgebra.Double;

class Foo {
  static void Main() {
    Vector<double> A = DenseVector.OfArray(new double[] { 1, 2, 3, 4 });
  }
}
Run Code Online (Sandbox Code Playgroud)

但是现在我不能简单地使用mcs进行构建:

$ mcs Foo.cs
foo.cs(1,7): error CS0246: The type or namespace name `MathNet' could not be found. Are you missing an assembly reference?
foo.cs(2,7): error CS0246: The type or namespace name `MathNet' could not be found. Are you missing an …
Run Code Online (Sandbox Code Playgroud)

.net c# mono nuget

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

如何让“python -i”读取PYTHONSTARTUP文件?

我正在运行Python 3.7.5。

当我开发程​​序时myprog.py,我经常运行

$ python3 -i myprog.py
Run Code Online (Sandbox Code Playgroud)

这让我可以交互式地测试函数,这非常有用。

不幸的是,正如Python文档中所述,python3 -i不会读取PYTHONSTARTUP环境变量指向的文件:

-我

当脚本作为第一个参数传递或使用 -c 选项时,即使 sys.stdin 看起来不是终端,也会在执行脚本或命令后进入交互模式。未读取 PYTHONSTARTUP 文件

这意味着我在 PYTHONSTARTUP 文件中定义的所有我最喜欢的导入和辅助函数都不可用。

有一些实用的方法可以解决这个问题吗?我发现的最好的解决方法是运行

$ python3
>>> from myprog import *
>>>
Run Code Online (Sandbox Code Playgroud)

代替python3 -i myprog.py。然而,每次修改myprog.py和重新启动 Python 会话时,这都会涉及更多的输入。有没有更好的办法?

python

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

在复合 StateT/Maybe monad 中,如何取任何一种成功的可能性?

在 Haskell 中,这是一个结合了 State 和 Maybe monad 的 monad:

type StatefulMaybe a = StateT Int Maybe a
Run Code Online (Sandbox Code Playgroud)

这是一个可以成功(返回一个值)或失败的计算。如果成功,它会携带一个状态以及返回值。

我想写一个函数

choice :: StatefulMaybe a -> StatefulMaybe a -> StatefulMaybe a
Run Code Online (Sandbox Code Playgroud)

这需要两次这样的计算并返回第一个成功的(如果有的话)。只有成功计算的状态变化才会被推进。

事实上,经过一些实验,我想出了如何写这个。这里是:

orMaybe :: Maybe a -> Maybe a -> Maybe a
orMaybe (Just x) _ = Just x
orMaybe Nothing x = x

choice :: StatefulMaybe a -> StatefulMaybe a -> StatefulMaybe a
choice mx my = StateT (\s ->
    (runStateT mx s) `orMaybe` (runStateT my s)
  )
Run Code Online (Sandbox Code Playgroud)

有用:

foo …
Run Code Online (Sandbox Code Playgroud)

monads haskell state-monad monad-transformers

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