我很惊讶地看到Hacker News的源代码只是一个包含功能定义的平面列表的大文件. Git Hub - news.arc
那是函数式编程的典型吗?在OOP项目中常见的深层目录结构中有很多短文件来源是不常见的吗?
FP中的模块是否与OOP中的命名空间相同?
如果还有另一种方法可以实现我在下面尝试做的事情,请告诉我.假设我有以下示例代码
type FooBar =
| Foo
| Bar
let foobars = [Bar;Foo;Bar]
let isFoo item =
match item with
| Foo _ -> true
| _ -> false
foobars |> Seq.filter isFoo
Run Code Online (Sandbox Code Playgroud)
我想编写isFoo的通用/高阶版本,它允许我根据所有其他类型的区分联合(在这种情况下为Bar)过滤我的列表.
像下面的东西,'可以是Foo或Bar
let is<'a> item =
match item with
| a _ -> true
| _ -> false
Run Code Online (Sandbox Code Playgroud)
但是,此尝试会产生以下错误:
错误FS0039:未定义模式鉴别器"a"
根据这个问题:F#中度量单位的分数幂没有F#中的度量单位支持的分数幂.
在我的应用程序中,有时候使用度量前缀来考虑数据是有益的,例如在处理秒时.有时我需要一毫秒的结果,有时甚至几秒钟.
我正在考虑使用的另一种选择是这个
[<Measure>] type milli
[<Measure>] type second
let a = 10.0<second>;
let b = 10.0<milli*second>
Run Code Online (Sandbox Code Playgroud)
这给了我:
val a : float<second> = 10.0
val b : float<milli second> = 10.0
Run Code Online (Sandbox Code Playgroud)
现在我想允许使用这两个操作进行计算.所以我能做到
let milliSecondsPerSecond = 1000.0<(milli*second)/second>
let a = 10.0<second>;
let b = 10.0<milli*second>
(a*milliSecondsPerSecond) + b
Run Code Online (Sandbox Code Playgroud)
这给了我我想要的东西
val it : float<milli second> = 10010.0
Run Code Online (Sandbox Code Playgroud)
现在,当你想要支持多个单元和多个前缀时,这一切都很好而且有光泽但很快就会失控.所以我认为有必要将其烘焙成更通用的解决方案,但不知道从哪里开始.我试过了
let milliPer<'a> = 1000.0<(milli * 'a) / 'a>
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为f#抱怨并告诉我"非零常数不能有通用单位"......
由于我认为单位前缀是一个常见问题,我想有人之前已经解决了这个问题.在F#中是否有更惯用的方法来做单位前缀?
我对python很新,我很欣赏它是一种动态语言.在我的第一个python代码大约30分钟后,我发现该bytes类型的行为有点奇怪(至少可以说):
a = bytes()
print type(a)
// prints: <type 'str'>
Run Code Online (Sandbox Code Playgroud)
在这里试试:http: //ideone.com/NqbcHk
现在,除了和外,文档说strings和bytes行为非常相似,但我没想到它们是同一类型.我想要确保的是我在代码中使用实际字节,并且不会发生强制/编码/解码..format.encode
那么这里发生了什么?
我有一个移动应用程序我正在构建,现在我正在进行身份验证.在我访问主页之前,我需要在我可以向用户显示数据之前,在我构建的API上点击各种端点.
在Postman中测试时,所有端点都返回正确的数据,但是null当我在我的应用程序中使用它时,我在第二次异步调用中得到一个值.
我确定它与这些调用的顺序有关,所以我只是在寻找一些帮助,以便我可以在启动另一个调用之前等待一个调用完成.
public login() {
this.showLoading();
this.userService.getUserIdFromUserName(this.registerCredentials.username) // WORKS
.subscribe(
res => {
console.log(res);
localStorage.setItem("UserId", res.toString());
},
err => {
console.log(err);
});
this.userService.getEmployeeIdFromUserId(localStorage.getItem("UserId")) // THIS RETURNS NULL
.subscribe(
res => {
console.log(res);
localStorage.setItem("EmployeeId", res.toString());
},
err => {
console.log(err);
});
this.authService.login(this.registerCredentials)
.subscribe(
data => {
this.loading.dismissAll();
console.log('User logged in successfully! ', data);
this.nav.push(TabsPage);
localStorage.setItem("Username", this.registerCredentials.username);
localStorage.setItem("isLoggedIn", "true");
},
error => {
this.loading.dismissAll();
this.showAlert("Uh oh!", "Something went wrong. Please re-enter your login credentials or check your connection.");
console.log(error); …Run Code Online (Sandbox Code Playgroud) 使用像Testdriven.net这样的VS集成工具或使用像Icarus或NUnit GUI这样的GUI测试运行器有什么区别?
你喜欢什么,为什么?
到目前为止,我发现Icarus的报告比td.net更好,td.net只有命令行输出.但是td.net使用起来更快,我可以更轻松地执行单个测试而无需先取消其余部分.NCover集成也非常好.
Map Reduce是一种似乎最近引起很大关注的模式,我开始看到它在我的一个专注于事件处理管道(iPhone加速度计和GPS数据)的项目中体现出来.我需要为这个项目构建大量的基础设施,实际上它超过了与之交互的逻辑代码2倍.我在EventProcessors(带有in-和outputbuffers,时间等),EventListeners,Aggregators和staged Pipeline中构建的一些组件.
这让我想到了地图缩减所需的"常见"基础设施是什么.由于我正在使用.Net,我可以看到框架和语言结构中内置的map reduce基础结构.功能语言本身支持这种范例.似乎每种语言都可以与map reduce一起使用.甚至围绕该概念建立了语言(例如Go).
Apache Hadoop将Map-Reduce引入Java.谷歌已经为map-reduce框架申请了专利.他们提供什么样的基础设施来减少地图?函数式语言中实现map reduce的结构是什么?map-reduce框架需要/应该提供什么?
在/sf/ask/590831/问题的基础上,我希望收集提示和技巧,以使XCode4在日常使用中更快.
特别是,我对如何禁用恼人的UI动画,缩短构建时间以及更快地在调试器下获取应用程序感兴趣.我们赞赏减少XCode内存占用以及缩短启动时间的技巧.
我很欣赏我可能会遗漏一些基本的东西,但......
我的iPad应用程序仅支持横向模式,并且有一个MainWindow.xib窗口,我想在XCode 4中以横向模式工作,但是用于更改此功能的下拉菜单(模拟指标 - >方向)始终为灰色出.
我注意到视图可以旋转得很好,只有Windows才能使用此设置在XCode 4中旋转.
有没有解决方法,或者我必须在MainWindow顶部放置一个View才能旋转它?
f# ×2
xcode4 ×2
angular ×1
arc-lisp ×1
c ×1
frameworks ×1
gallio ×1
hadoop ×1
icarus ×1
ide ×1
ios ×1
javascript ×1
lisp ×1
mapreduce ×1
python ×1
python-2.7 ×1
rxjs ×1
tdd ×1
typescript ×1