我在 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)
这个消息很烦人。有什么办法可以禁用它吗?
我在Ubuntu 17.10上使用Mono 5.4.1.7编写C#代码。
这是我想从命令行执行的所有操作:
但是我看不到任何简单的方法可以做到这一点,所以我一定会缺少一些东西。
这是我尝试过的。我为程序创建了目录“ 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) 我正在运行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 会话时,这都会涉及更多的输入。有没有更好的办法?
在 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)