在F#中有什么方法可以获取传递给函数的变量的名称吗?
例:
let velocity = 5
let fn v = v.ParentName
let name = fn velocity // this would return "velocity" as a string
Run Code Online (Sandbox Code Playgroud)
先感谢您
编辑:
为什么这段代码不起作用?它匹配为值,因此我无法检索"变量"名称.
type Test() =
let getName (e:Quotations.Expr) =
match e with
| Quotations.Patterns.PropertyGet (_, pi, _) -> pi.Name + " property"
| Quotations.Patterns.Value(a) -> failwith "Value matched"
| _ -> failwith "other matched"
member x.plot v = v |> getName |> printfn "%s"
let o = new Test()
let display () =
let variable …Run Code Online (Sandbox Code Playgroud) 我们正在为一个支持六种不同语言的网站开发一个博客,其中五种语言的字母表中包含非拉丁字符。我们不确定是否应该对它们进行编码(这就是我们目前正在做的)
Létání spotravinami:Co je dovoleno?变为l%c3%a9t%c3%a1n%c3%ad-s-potravinami-co-je-dovoleno并且浏览器将其显示为létání-s-potravinami-co-je-dovoleno。
或者我们是否应该用他们的拉丁语“对应物”(看起来相似的字母)替换它们
Létání spotravinami:Co je dovoleno?变成letani-s-potravinami-co-je-dovoleno。
从 SEO 的角度来看,我找不到关于什么更好的明确答案?搜索引擎优化对我们来说非常重要。你会建议哪种方法?
我有一个class A { public float Score; ... }和一个,IEnumerable<A> items并希望找到A最低分.
使用items.Min(x => x.Score)给出最小分数而不是具有最小分数的实例.
如何只通过迭代一次数据来获取实例?
编辑:这么长时间有三个主要解决方案:
编写扩展方法(由Svish提出).优点:易于使用和评估每个项目只有一次得分.缺点:需要扩展方法.(我为我的申请选择了这个解决方案.)
使用Aggregate(由Daniel Renshaw提出).优点:使用内置的LINQ方法.缺点:对未经训练的眼睛略微混淆并且不止一次地给评估者打电话.
实施IC Comparable(由网络化提出).优点:可以直接使用Linq.Min.缺点:固定为一个比较器 - 在执行最小计算时无法自由选择比较器.
我喜欢GNU readline库,但由于它是GPL许可证,我不能将它用于商业软件.你知道其他选择吗?我只需要命令行历史记录和自动完成(客户关键字和文件)功能.我找到了这个链接:
http://github.com/antirez/linenoise
这似乎是一个很好的起点,但没有自动完成.
任何建议,当然这对于构建交互式shell命令的人来说必定是一项常见任务.
更新:
乌普忘了一个重要的细节,它也应该在Windows上运行..
有没有人知道如何获得windbg,而无需下载整个620MB WDK ISO?
我可以在网上找到的下载调试器的是这个链接,它说你必须得到整个WDK:http://www.microsoft.com/whdc/devtools/debugging/default.mspx.
在Python中使用抽象属性实现以下Scala代码的最短/最优雅的方法是什么?
abstract class Controller {
val path: String
}
Run Code Online (Sandbox Code Playgroud)
Controller强制使用子类来定义Scala编译器的"路径".子类看起来像这样:
class MyController extends Controller {
override val path = "/home"
}
Run Code Online (Sandbox Code Playgroud) 我想在.net中编写一个向导,它以编程方式生成带有一些项目的Visual Studio解决方案.我将有一个XML文件,其中包含需要包含在项目中的文件的详细信息,以及它们各自的获取路径和项目名称列表.有什么方法可以实现这一点
@implementation AppController
- (IBAction) loadComposition:(id)sender
{
void (^handler)(NSInteger);
NSOpenPanel *panel = [NSOpenPanel openPanel];
[panel setAllowedFileTypes:[NSArray arrayWithObjects: @"qtz", nil]];
handler = ^(NSInteger result) {
if (result == NSFileHandlingPanelOKButton) {
NSString *filePath = [[[panel URLs] objectAtIndex:0] path];
if (![qcView loadCompositionFromFile:filePath]) {
NSLog(@"Could not load composition");
}
}
};
[panel beginSheetModalForWindow:qcWindow completionHandler:handler];
}
@end
Run Code Online (Sandbox Code Playgroud)
===我搜索过并搜索过 - 这是对内存的某种特殊参考吗?
我在Mail :: IMAPClient中找到了这个.在什么地方$_在$SEARCH_KEYS{ uc($_) }从何而来?
sub _quote_search {
my ( $self, @args ) = @_;
my @ret;
foreach my $v (@args) {
if ( ref($v) eq "SCALAR" ) {
push( @ret, $$v );
}
elsif ( exists $SEARCH_KEYS{ uc($_) } ) {
push( @ret, $v );
}
elsif ( @args == 1 ) {
push( @ret, $v ); # <3.17 compat: caller responsible for quoting
}
else {
push( @ret, $self->Quote($v) );
}
} …Run Code Online (Sandbox Code Playgroud) 这是我前一段时间在求职面试时被问到的问题.而我仍然无法找出合理的答案.
问题是:
你得到一组点(x,y).找到2个最遥远的点.相互遥远.
例如,对于点:(0,0),(1,1),( - 8,5) - 最远的是:(1,1)和(-8,5)因为它们之间的距离较大(0,0) - (1,1)和(0,0) - ( - 8,5).
显而易见的方法是计算所有点之间的所有距离,并找到最大值.问题是它是O(n ^ 2),这使得它对于大型数据集而言过于昂贵.
有一种方法是在边界上有第一个跟踪点,然后计算它们的距离,前提是边界上的点数少于"内部",但它仍然很昂贵,并且在最坏的情况下会失败.
试图搜索网络,但没有找到任何明智的答案 - 虽然这可能只是我缺乏搜索技巧.