小编Ben*_*mes的帖子

更改默认的python编码样式

在python中我遵循camelCase命名风格.我用"pylint"检查了我的代码,它给出了不遵循lower_case_with_underscores样式的错误.我也使用netBeans IDE进行编码.此IDE提示不遵循lower_case_with_underscores样式.

如何告诉pylint和netBeans我正在遵循camelCase命名样式,而不是lower_case_with_underscores?

谢谢.

python pylint

18
推荐指数
2
解决办法
8124
查看次数

monad变换器是否适用于从服务中获取JSON?

我玩了!2用于Scala应用程序,需要从外部服务检索JSON格式的某些数据.

表演!框架允许通过将响应包装在Promise中来异步发出HTTP请求.Promise是一个monad,它包含了将来可用的值.

这很好,但在我的情况下,我从Web服务得到的是一个JSON字符串.我必须解析它,解析可能会失败.所以我必须包装我得到的任何东西Option.结果是我的许多方法都在返回Promise[Option[Whatever]].也就是说,类型的值Whatever可能稍后可用.

现在每当我必须操作这样的值时,我需要map两次.我想用以下方式处理这个问题:

  • 创建一个新类型,比如说Hope[A],包装一个Promise[Option[A]]
  • 定义相关的方法,如map(或者我应该使用foreach和继承某些集合特征?)和flatten
  • Promise[Option[A]]和之间提供隐式转换器Hope[A].

它很容易定义map- 两个仿函数的组合也是一个仿函数 - flatten在这种情况下可以明确地完成,或者在编写monad时Option.

但是我有限的理解是我不需要重新发明这些东西:monad变换器确实存在于这种情况下.或者,好吧,所以我认为 - 我从未使用过monad变换器 - 这就是问题的关键点:

在这种情况下可以使用monad变压器吗?我将如何实际使用它们?

monads scala monad-transformers playframework-2.0

18
推荐指数
1
解决办法
3190
查看次数

功能编程+领域驱动设计

函数式编程提升了不可变类和引用透明性.

域驱动设计由Value Object(不可变)和Entities(可变)组成.

我们应该创建不可变实体而不是可变实体吗?

让我们假设,项目使用Scala作为主要语言,如果我们处理并发,我们如何编写实体作为案例类(不可变),而不会有过时状态的风险?

什么是好习惯?保持实体可变(var字段等...)并避免使用案例类的优秀语法?

entities domain-driven-design functional-programming scala

16
推荐指数
2
解决办法
5432
查看次数

在Scala中是否可以强制调用者为多态方法指定类型参数?

//API
class Node
class Person extends Node

object Finder
{
  def find[T <: Node](name: String): T = doFind(name).asInstanceOf[T]
}

//Call site (correct)
val person = find[Person]("joe")

//Call site (dies with a ClassCast inside b/c inferred type is Nothing)
val person = find("joe")
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,客户端站点"忘记"指定类型参数,因为API编写器我希望它意味着"只返回节点".有没有办法定义一个通用方法(而不是一个类)来实现这个(或等价).注意:在实现中使用清单来执行转换if(manifest!= scala.reflect.Manifest.Nothing)将无法编译...我有一种唠叨的感觉,一些Scala向导知道如何使用Predef.<:<为了这 :-)

想法?

generics scala type-inference

14
推荐指数
3
解决办法
2688
查看次数

GitHub包含来自另一个存储库

我是github的新手.

我的机器上有一个github仓库.我想在我的回购中加入另一个回购(作为第三方).我相信我应该先做一个分叉.但是如何将它包含在我的本地回购中呢?

我尝试了子模块,但没有成功......

谢谢.

git github

13
推荐指数
1
解决办法
1万
查看次数

哈希标志在erlang中做了什么?

哈希标志在erlang中做了什么?

record_to_string(#roster{us = {User, _Server},
         jid = JID,
         name = Name,
         subscription = Subscription,
         ask = Ask,
         askmessage = AskMessage}) ->
Username = ejabberd_odbc:escape(User).
....
.
Run Code Online (Sandbox Code Playgroud)

erlang

12
推荐指数
4
解决办法
4067
查看次数

在vim文件中的两行之间快速切换

有时我必须在2行之间切换.要做到这一点,我必须传递行号.是否有在最后两个"访问"列表之间移动的快捷方式.类似的东西'.(它移动到最后编辑的行)

vim

11
推荐指数
3
解决办法
1150
查看次数

Scala中方法类型参数化的结构类型?

考虑以下Scala代码(例如,在REPL中)

object A{def foo:Unit = {}}
object B{def foo:Unit = {}}

def bar[T <: Any {def foo: Unit}](param: T*):Unit = param.foreach(x => x.foo)

bar(A, A)  // works fine
bar(B, B)  // works fine
bar(A, B)  // gives error
Run Code Online (Sandbox Code Playgroud)

前两个工作正常.第三个给出错误:

error: inferred type arguments [ScalaObject] do not conform to method bar's type parameter bounds [T <: Any{def foo: Unit}]

有什么方法可以做我想要的吗?

scala

11
推荐指数
1
解决办法
901
查看次数

FreeT是否保留Free的等式推理优势?

在这篇博客文章中,作者解释了使用Free monad净化代码的等式推理优势.Free Monad变压器FreeT是否保留了这些优势,即使它包裹在IO之外?

haskell

11
推荐指数
1
解决办法
441
查看次数

使用git,如何删除远程分支的本地副本?或者至少拉动而不合并?

另一位开发人员删除并重建了一个名为"development"的远程分支,我已经签出了一份副本.他做了这个删除和重建,以消除它的一些残余.哪个好.

但是,当我做"git pull origin development"时,它会不断出现合并冲突.但我不想要我的副本.我只想要原产地.

那么如何删除我的本地副本并将其拉回来?或者至少在没有将我的本地信息合并到它的情况下拉?

git branch branching-and-merging git-branch

10
推荐指数
2
解决办法
5760
查看次数