阅读Wikipedia对多态的定义,我想到一个问题:
Haskell支持哪些多态类型,哪些不支持?
看起来Wikipedia并未包含对某些多态类型的描述,例如Levity Polymorphism,这对我来说是新的,在Haskell中受支持。
我想知道是否有扩展的Haskell多态性列表,并附带示例进行深入研究。
看起来主要是两个:
通常我创建一个"Scala对象"来保存我所有的全局常量.我被告知最好使用"包对象"来保持常量.我之前从未使用过"包对象",所以我的问题是:
在Scala中保存常量的最佳实践是什么?为什么?
为什么我需要"包对象"?
我正在设计一个应该安排向自身发送消息的演员。
我注意到至少有两种方法可以做到这一点。
我想了解选择正确选择的区别。
第一种是akka.actor.Timers的一种方法:
def startSingleTimer(key: Any, msg: Any, timeout: FiniteDuration): Unit
Run Code Online (Sandbox Code Playgroud)
第二种是actor上下文系统的调度程序的常见方法:
final def scheduleOnce(
delay: FiniteDuration,
receiver: ActorRef,
message: Any)(implicit executor: ExecutionContext,
sender: ActorRef = Actor.noSender): Cancellable
Run Code Online (Sandbox Code Playgroud)
题:
scheduleOnce方法是一个好主意吗?我听说 Haskell 中使用文本而不是字符串是一个很好的做法。
我试图遵循这个规则,并提出以下问题:
为什么parseRouteNetwork-HTTP-Client 被设计为使用字符串而不是文本?
使用字符串而不是文本的一般建议是什么?
https://www.stackage.org/haddock/lts-14.2/http-client-0.6.4/Network-HTTP-Client.html#v:parseRequest
这是我的代码:
SomeResult result = null;
try {
if(isOK) {
result = service.getOK();
}
} catch (Exception e) {
//logging
}
if(result == null) {
result = service.getKO();
}
return result;
Run Code Online (Sandbox Code Playgroud)
我要让SomeResult结果最终是这样的:
final SomeResult result;
Run Code Online (Sandbox Code Playgroud)
有一个出口点可以吗?
我有一个服务器,该服务器为给定请求传输数据,以下是执行该功能的方法
@Override
public void getChangeFeed(ChangeFeedRequest request, StreamObserver<ChangeFeedResponse> responseObserver) {
long queryDate = request.getFromDate();
long offset = request.getPageNo();
ChangeFeedResponse changeFeedResponse = processData(responseObserver, queryDate, offset);
while(true){
if(changeFeedResponse!=null && !changeFeedResponse.getFinalize()){
responseObserver.onNext(changeFeedResponse);
changeFeedResponse = processData(responseObserver, changeFeedResponse.getToDate(), changeFeedResponse.getPageNo());
}else{
break;
}
}
responseObserver.onNext(changeFeedResponse);
responseObserver.onCompleted();
}
Run Code Online (Sandbox Code Playgroud)
当客户端断开连接时,服务器仍继续处理,这可能在多个客户端获取数据时出现。需要知道如何告诉服务器停止处理
当我将伴随对象添加到我的案例类时,我不能使用元组将参数作为元组传递。
case class Person(name:String, age:Int)
object Person {}
Person.tupled // Not works
Run Code Online (Sandbox Code Playgroud)
错误:
Error:(7, 9) value tupled is not a member of object A$A6.this.Person
Person.tupled
^
Run Code Online (Sandbox Code Playgroud)
有人可以解释这种行为吗?谢谢!
我有以下采用路径参数的代码;
def candlesRange: Route = (path("candles" / Segment / Segment / IntNumber / LongNumber / LongNumber) & get) {
(a1, a2, tf, t1, t2) => complete(apiController.apiGetCandlesRange(a1, a2, tf, t1, t2))
}
Run Code Online (Sandbox Code Playgroud)
但我想将一些参数更改为查询参数。所以 URL 将遵循这样的格式;
/candles/Asset1/Asset2/timeStart=1507198441000&timeEnd=1512382501000&interval=60m
Run Code Online (Sandbox Code Playgroud)
并将它们传递给相同的方法(甚至可能从分钟中删除“m”,因为方法上的参数是一个整数)
如何在 Scala Akka Http 中更改此路由以执行此操作。我能找到的唯一示例使用 Path params
初步问题:
在Scala中,我想使用隐式Ordering[T]#Ops来比较两个LocalDate.
它只是用来>代替"运营商" isAfter.
它应该只是一个导入: import scala.math.Ordering.Implicits._
检查:
看起来它适用LocalTime而不是LocalDate因为LocalTime而不是LocalDate工具Comparable<LocalTime>.
题:
我想知道,
为什么要LocalDate实现Comparable<ChronoLocalDate>而不是 Comparable<LocalDate>?
I noticed some function names ending with _ in Haskell (e.g. mapM_, traverse_).
What does it mean?
scala ×5
haskell ×3
java ×3
akka ×2
actor ×1
akka-http ×1
case-class ×1
comparable ×1
constants ×1
exception ×1
final ×1
grpc ×1
grpc-java ×1
localdate ×1
object ×1
polymorphism ×1
scheduling ×1
spray ×1
types ×1
yesod ×1