我想调试 Lazarus 库代码。在 Delphi IDE 中,我只需选中 Project Options -> Compiler -> Use Debug DCUs 选项。拉撒路有没有类似的东西?
在IronPython中有任何方法可以强制将包含整数值的表达式计算为浮点数.例如,我喜欢这个表达方式
1/3
Run Code Online (Sandbox Code Playgroud)
被评估为
1./3.
Run Code Online (Sandbox Code Playgroud)
结果为0.333 ...
我需要这个通过IronPython在C#项目中创建一个简单的运行时表达式计算器.我无法强制用户输入带有尾随小数点的表达式.
为什么不Manipulate[]使用大数字?例如,这是有效的
Manipulate[k, {k, 0, 1000000000, 1}]
Run Code Online (Sandbox Code Playgroud)
而这不是
Manipulate[k, {k, 0, 10000000000, 1}]
Run Code Online (Sandbox Code Playgroud)
我相信应该有一些Mathematica变量影响这个,但我找不到一个.
它曾经是Mathematica 7中的Ctrl+ =,但在Mathematica 8中,而不是在下面写,这个快捷方式开始自由格式输入.tutorial/KeyboardShortcutListing上的文档尚未更新.现在使用哪种快捷方式写下面的?
如何在Delphi中的另一个线程中引发异常?我有线程1和线程2,我想在线程1中引发异常并在线程2中捕获它.
编辑
我现在可以看到我最初的解释令人困惑.我想要做的是从线程1初始化线程2中的异常引发.因此引发异常并在线程2中捕获,但是此过程由线程1控制.假设我有一个主线程创建一个工作线程.我需要一种机制来优雅地从主线程中停止工作线程,但由于某些原因,这里无关紧要,我不能使用TThread.Terminate/Terminated模式.所以我认为,如果我可以启动(注入?)从主线程中提取工作线程,则可以将其用作停止信号.
如何从IronPython脚本访问C#类?C#:
public class MyClass
{
}
public enum MyEnum
{
One, Two
}
var engine = Python.CreateEngine(options);
var scope = engine.CreateScope();
scope.SetVariable("t", new MyClass());
var src = engine.CreateScriptSourceFromFile(...);
src.Execute(scope);
Run Code Online (Sandbox Code Playgroud)
IronPython脚本:
class_name = type(t).__name__ # MyClass
class_module = type(t).__module__ # __builtin__
# So this supposed to work ...
mc = MyClass() # ???
me = MyEnum.One # ???
# ... but it doesn't
Run Code Online (Sandbox Code Playgroud)
UPDATE
我需要导入托管程序集中定义的类.
假设我们有3个变量,我们需要ASSERT它们都可以等于-1或者都不能等于-1.我写了以下代码:
x := 1;
y := 1;
z := 1;
ASSERT( (x = -1) = (y = -1) = (z = -1) );
Run Code Online (Sandbox Code Playgroud)
我经常写这种检查,但两个变量.令人惊讶的是,三重比较也被编译,但它没有按预期工作.对于(1,1,1)值,我希望它评估为真.在替换变量值和简化之后,我们得到:
ASSERT( False = False = False );
Run Code Online (Sandbox Code Playgroud)
我认为它应该评估为True,但事实并非如此.那么三重比较如何评估?
我正在尝试创建一段代码,但无法使其正常工作.我能想到的最简单的例子是解析一些CSV文件.假设我们有一个CVS文件,但数据以某种层次结构组织在其中.像这样:
Section1;
;Section1.1
;Section1.2
;Section1.3
Section2;
;Section2.1
;Section2.2
;Section2.3
;Section2.4
Run Code Online (Sandbox Code Playgroud)
等等
我这样做了:
let input =
"a;
;a1
;a2
;a3
b;
;b1
;b2
;b3
;b4
;b5
c;
;c1"
let lines = input.Split('\n')
let data = lines |> Array.map (fun l -> l.Split(';'))
let sections =
data
|> Array.mapi (fun i l -> (i, l.[0]))
|> Array.filter (fun (i, s) -> s <> "")
Run Code Online (Sandbox Code Playgroud)
我得到了
val sections : (int * string) [] = [|(0, "a"); (4, "b"); (10, "c")|]
Run Code Online (Sandbox Code Playgroud)
现在我想为每个部分创建一个行索引范围列表,如下所示:
[|(1, 3, …Run Code Online (Sandbox Code Playgroud) 我想创建一组数字:0,1,2,3,4 ......以下代码无法编译:
std::set<int> s;
std::iota(s.begin(), s.end(), 0);
Run Code Online (Sandbox Code Playgroud)
带有以下错误消息:
error C3892: '_First' : you cannot assign to a variable that is const
Run Code Online (Sandbox Code Playgroud)
编译器是VC++ 2012.相同的代码适用于矢量.我应该如何使用它?
UPDATE
我现在可以看到我的代码没有意义,因为没有指定设置大小.
以下是有关我的问题的更多详细信息.
我有一个包含[0,N]范围内的一些数字的集合.在我的应用程序中,我需要多次计算这些集合的集合差异.N是固定的.
让我们说N = 5,第一组是s1 = {0, 3, 4}.我需要计算设定差异{0, 1, 2, 3, 4} \ {0, 3, 4} == {1, 2}.这个操作应该经常针对不同的集合执行,所以我认为我可以创建一个包含所有数字的集合({0, 1, 2, 3, 4}在这种情况下)并用于std::set_difference计算这些差异.
delphi ×4
expression ×2
ironpython ×2
c# ×1
c++ ×1
c++11 ×1
f# ×1
ide ×1
lazarus ×1
python ×1
stl ×1
visual-c++ ×1