小编Joh*_*lph的帖子

7
推荐指数
2
解决办法
8910
查看次数

函数式编程中的多个源文件,目录结构和命名空间

我很惊讶地看到Hacker News的源代码只是一个包含功能定义的平面列表的大文件. Git Hub - news.arc

那是函数式编程的典型吗?在OOP项目中常见的深层目录结构中有很多短文件来源是不常见的吗?

FP中的模块是否与OOP中的命名空间相同?

lisp functional-programming arc-lisp

7
推荐指数
1
解决办法
777
查看次数

F#使用泛型类型作为模式鉴别器

如果还有另一种方法可以实现我在下面尝试做的事情,请告诉我.假设我有以下示例代码

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# pattern-matching discriminated-union

7
推荐指数
1
解决办法
2539
查看次数

F#测量单位建模度量标准前缀(微,毫,纳米)

根据这个问题: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#中是否有更惯用的方法来做单位前缀?

f# units-of-measurement

7
推荐指数
1
解决办法
762
查看次数

为什么是type(bytes())<'str'>

我对python很新,我很欣赏它是一种动态语言.在我的第一个python代码大约30分钟后,我发现该bytes类型的行为有点奇怪(至少可以说):

a = bytes()
print type(a)
// prints: <type 'str'>
Run Code Online (Sandbox Code Playgroud)

在这里试试:http: //ideone.com/NqbcHk

现在,除了和外,文档stringsbytes行为非常相似,但我没想到它们是同一类型.我想要确保的是我在代码中使用实际字节,并且不会发生强制/编码/解码..format.encode

那么这里发生了什么?

python python-2.7

7
推荐指数
2
解决办法
187
查看次数

Angular 2调用多个异步方法

我有一个移动应用程序我正在构建,现在我正在进行身份验证.在我访问主页之前,我需要在我可以向用户显示数据之前,在我构建的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)

javascript rxjs typescript angular

7
推荐指数
1
解决办法
2948
查看次数

Gallio Icarus对阵Testdriven.net

使用像Testdriven.net这样的VS集成工具或使用像Icarus或NUnit GUI这样的GUI测试运行器有什么区别?

你喜欢什么,为什么?

到目前为止,我发现Icarus的报告比td.net更好,td.net只有命令行输出.但是td.net使用起来更快,我可以更轻松地执行单个测试而无需先取消其余部分.NCover集成也非常好.

tdd testdriven.net gallio icarus

6
推荐指数
1
解决办法
2190
查看次数

地图减少框架/基础设施

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框架需要/应该提供什么?

language-agnostic frameworks hadoop mapreduce

6
推荐指数
1
解决办法
712
查看次数

XCode 4优化

/sf/ask/590831/问题的基础上,我希望收集提示和技巧,以使XCode4在日常使用中更快.

特别是,我对如何禁用恼人的UI动画,缩短构建时间以及更快地在调试器下获取应用程序感兴趣.我们赞赏减少XCode内存占用以及缩短启动时间的技巧.

ide xcode4

6
推荐指数
1
解决办法
674
查看次数

如何在XCode 4 Interface Builder中将窗口方向更改为横向?

我很欣赏我可能会遗漏一些基本的东西,但......

我的iPad应用程序仅支持横向模式,并且有一个MainWindow.xib窗口,我想在XCode 4中以横向模式工作,但是用于更改此功能的下拉菜单(模拟指标 - >方向)始终为灰色出.

我注意到视图可以旋转得很好,只有Windows才能使用此设置在XCode 4中旋转.

有没有解决方法,或者我必须在MainWindow顶部放置一个View才能旋转它?

ios xcode4

6
推荐指数
1
解决办法
8834
查看次数