我在理解F#中括号的用法时遇到了问题.举一个简单的例子说明,以下2个控制台应用程序的行为有很大不同.第一个不等我输入任何东西:
open System
let Main =
Console.WriteLine "Hello"
Console.ReadLine
Run Code Online (Sandbox Code Playgroud)
而第二个做的是:
open System
let Main =
Console.WriteLine "Hello"
Console.ReadLine()
Run Code Online (Sandbox Code Playgroud)
我该如何理解其中的区别?
我试图使用JSON类型提供程序通过API访问StackOverflow/StackExchange数据.它很有用,但有一点需要注意.API有一个节流阀,由一个字段"退避"发出信号,该字段包含您应该退出的秒数,直到您的下一个请求为止.因此,我不能只将JSON TP指向url,因为默认情况下不存在退避字段.这是响应通常看起来的样子:
{
"items": [
{
"has_synonyms": true,
"user_id": 1144035,
"is_moderator_only": false,
"is_required": false,
"count": 7054,
"name": "sql"
},
{
"has_synonyms": true,
"user_id": 1144035,
"is_moderator_only": false,
"is_required": false,
"count": 16,
"name": "algorithm"
}
],
"has_more": true,
"quota_max": 10000,
"quota_remaining": 9693
}
Run Code Online (Sandbox Code Playgroud)
我假设我需要做的是提供一个样本,其中包含一个没有退避的示例(如上所述),以及一个沿着这样的行:
"has_more": true,
"quota_max": 10000,
"quota_remaining": 9693,
"backoff": 10
}
Run Code Online (Sandbox Code Playgroud)
...所以我得到了退避选项.但是,我不确定如何构建/准备样本.非常感谢帮助!
我喜欢使用.fsi签名文件来控制可见性.但是,如果我在我的解决方案和脚本中同时拥有 文件Foo.fsi和Foo.fs文件#load "Foo.fs",则似乎不会使用相应的签名文件.如果我做:
#load "Foo.fsi"
#load "Foo.fs"
Run Code Online (Sandbox Code Playgroud)
...然后发生所需的可见性控制.这是实现这一目标的推荐方法,还是有更好的方法来实现这一目标?在一个完美的世界中,人们也希望自动加载签名文件.
我试图以编程方式复制PowerPoint演示文稿中的幻灯片,并将其粘贴到原始文件后.
我的第一个想法是获取旧幻灯片的索引,并将副本添加到所需的新索引,但我似乎无法找到一种直接的方法来检索该索引.我希望有类似的东西Slides.IndexOf(Slide slide),但找不到那样的东西.我最后编写了非常老派的代码,这似乎有用,但我很好奇是否有更好的方法来做到这一点.
var slide = (PowerPoint.Slide)powerpoint.ActiveWindow.View.Slide;
var slideIndex = 0;
for (int index = 1; index <= presentation.Slides.Count; index++)
{
if (presentation.Slides[index] == slide)
{
slideIndex = index;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
这是C#/ VSTO,但任何可以让我走上正确道路的输入都值得赞赏,无论是VBA还是VB!
我正在使用PowerPoint 2007 VSTO加载项,我正在运行一个小问题.加载项使用以下代码将声音添加到当前幻灯片:
var shape = slide.Shapes.AddMediaObject(soundFileLocation, 50, 50, 20, 20);
Run Code Online (Sandbox Code Playgroud)
生成的形状确实有声音,可以通过PowerPoint幻灯片播放.我的问题是,给定一个以这种方式创建的形状的引用,我想以编程方式播放声音,但我找不到这样做的方法.我试过了
var soundEffect = shape.AnimationSettings.SoundEffect;
soundEffect.Play();
Run Code Online (Sandbox Code Playgroud)
但这会失败/崩溃,当我检查soundEffect时,它的类型是ppSoundNone.
编辑:获得部分成功
var shape = slide.Shapes.AddMediaObject(fileLocation, 50, 50, 20, 20);
shape.AnimationSettings.SoundEffect.ImportFromFile(fileLocation);
Run Code Online (Sandbox Code Playgroud)
这样做可以让我播放声音:
var animationSettings = shape.AnimationSettings;
var soundEffect = shape.AnimationSettings.SoundEffect;
soundEffect.Play();
Run Code Online (Sandbox Code Playgroud)
但是有一个主要问题; 这仅适用于添加的最后一个形状.出于某种原因,shape.AnimationSettings.SoundEffect.ImportFromFile(fileLocation)似乎将SoundEffect属性重置为ppSoundNone以用于先前创建的形状...
如果这不可行,我会感到惊讶,但我似乎无法找到 - 任何帮助都会非常感激!
我正在尝试使用新的iOS 6功能的自定义位置更新,但继续收到此错误:
didFinishDeferredUpdatesWithError:Error Domain = kCLErrorDomain Code = 11"无法完成操作.(kCLErrorDomain error 11.)"
我使用以下代码:
- (DeviceAPI *) init
{
locationManager = [[CLLocationManager alloc] init];
[locationManager setDelegate:self];
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
[locationManager startUpdatingLocation];
[locationManager allowDeferredLocationUpdatesUntilTraveled:(CLLocationDistance)100000 timeout:(NSTimeInterval)100000];
return self;
}
Run Code Online (Sandbox Code Playgroud)
而这个callback功能:
- (void)locationManager: (CLLocationManager *) manager
didFinishDeferredUpdatesWithError:(NSError *)error
{
NSLog(@"didFinishDeferredUpdatesWithError :%@", [error description]);
}
Run Code Online (Sandbox Code Playgroud)
有帮助吗?
... 就是那个问题.我一直在研究一种算法,该算法将一组矢量作为输入,并且算法的一部分重复选择矢量对并评估这两个矢量的函数,这些函数不随时间变化.看看优化算法的方法,我认为这对于memoization来说是一个很好的例子:不是一遍又一遍地重新计算相同的函数值,而是懒惰地缓存它并点击缓存.
在跳转到代码之前,这里是我的问题的要点:我从memoization获得的好处取决于向量的数量,我认为这与重复调用的数量成反比,并且在某些情况下,memoization会完全降低性能.那么我的情况不足以进行记忆化吗?我做错了什么,是否有更聪明的方法来优化我的情况?
这是一个简化的测试脚本,它与真实的东西非常接近:
open System
open System.Diagnostics
open System.Collections.Generic
let size = 10 // observations
let dim = 10 // features per observation
let runs = 10000000 // number of function calls
let rng = new Random()
let clock = new Stopwatch()
let data =
[| for i in 1 .. size ->
[ for j in 1 .. dim -> rng.NextDouble() ] |]
let testPairs = [| for i in 1 .. runs -> rng.Next(size), rng.Next(size) |]
let …Run Code Online (Sandbox Code Playgroud) 我在C#中创建了一个Excel Addin项目.现在解决方案包含一个文件ThisAddin.cs,它有一个ThisAddin类.后来我在同一个解决方案中添加了一个名为Form的项目.在Form中,当我单击一个按钮时,对于该按钮单击事件,我想调用ThisAddin.cs文件中的方法.
namespace ExcelAddIn
{
public partial class ThisAddIn
{
public void RefreshExcelData()
{
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在在MyForm.cs中,在尝试为ThisAddin类创建一个对象时,有一个编译错误,即Thisaddin类没有一个带0参数的构造函数.
private void btnUploadTestCases_Click(object sender, EventArgs e)
{
ThisAddIn objrefresh = new ThisAddin();
}
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
f# ×4
vsto ×4
excel ×3
c# ×2
powerpoint ×2
vba ×2
add-in ×1
audio ×1
automation ×1
f#-data ×1
ios6 ×1
location ×1
memoization ×1
ms-access ×1
optimization ×1
xcode ×1