小编Opt*_*ght的帖子

'合格'在'import qualified Data.List'语句中的含义是什么?

import Data.List - 我明白了.

但声明中的qualified含义是什么import qualified Data.List

haskell

35
推荐指数
3
解决办法
5463
查看次数

哪个GOF设计模式有完全不同的实现(java vs Scala)

最近我读了以下SO问题:

在Scala中使用访问者模式是否有任何用例?每次我在Java中使用访问者模式时,我是否应该在Scala中使用模式匹配?

带标题问题的链接: Scala中的访客模式.接受的答案始于

是的,您应该从模式匹配开始,而不是访问者模式.请参阅 http://www.artima.com/scalazine/articles/pattern_matching.html

我的问题(受上面提到的问题的启发)是哪个GOF设计模式在Scala中有完全不同的实现?如果我在Scala中编程,我应该在哪里注意并且不要遵循设计模式(Gang of Four)的基于Java的编程模型?

创作模式

  • 抽象工厂
  • 生成器
  • 工厂方法
  • 原型
  • Singleton:直接创建一个Object(scala)

结构模式

  • 适配器
  • 综合
  • 装饰
  • 正面
  • 飞锤
  • 代理

行为模式

  • 责任链
  • 命令
  • 翻译员
  • 迭代器
  • 中间人
  • 纪念品
  • 观察
  • 战略
  • 模板方法
  • 访客:Patten Matching(scala)

design-patterns scala

31
推荐指数
2
解决办法
4105
查看次数

如何在Ubuntu 12.04 LTS上开始使用Xmonad?

我已经安装了在Haskell中编写的Xmonad 0.10-3轻量级X11窗口管理器以及我的Ubuntu 12.04 LTS系统上的库和文档.

我期望一些界面/菜单运行这个应用程序但没有看到.我也找不到相关文档.

请指导如何开始使用Xmonad?

xmonad ubuntu-12.04

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

hackage.haskell.org文档约定含义

我目前正在阅读http://hackage.haskell.org/packages/archive/containers/latest/doc/html/Data-Set.html#t:Set

下面的细节传达了什么(对绝对的haskell初学者)?

便携性:便携式(其他哪些是便携性值?)
稳定性:临时性(其他哪些是稳定性值?)
维护者:libraries@haskell.org
安全Haskell:安全(有什么东西不安全吗?)

haskell haskell-platform

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

构造函数中的不可见/隐藏字段

我正在通过学习你是一个很好的Haskell,我已达到第8.4节"衍生实例".在本节中,有以下数据类型声明:

data Person = Person { firstName :: String  
                     , lastName :: String  
                     , age :: Int  
                     } deriving (Eq)
Run Code Online (Sandbox Code Playgroud)

一边试试

*Main> mikeD == Person {firstName = "Michael", lastname = "Diamond", age = 43}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

<interactive>:55:41:
`lastname' is not a (visible) field of constructor `Person'
Run Code Online (Sandbox Code Playgroud)

通过纠正lastnamelastName我删除了错误.

题:

在错误消息中,该词(visible)暗示我必须有可能将字段声明为隐藏/不可见.这是否正确?如果是,我如何将构造函数中的字段声明为隐藏,以及需要声明隐藏字段的一般情况是什么?如果您可以通过给出一个简单的使用示例来解释这一点,那将是值得赞赏的.

注意:我找不到有关LYAH中隐藏或隐藏字段的任何参考/详细信息.

haskell types derived-types derived-instances

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

如何命名物理上大写的Haskell变量

haskell中的变量名称需要小写,但是

如果我们想存储g = 9.8和G = 6.67300×10-11(在下面的场景中),如何在.hs文件中声明变量?

传统物理学家提到:

(1)地球上的重力加速度

g = 9.8米/秒^ 2

(2)万有引力常数

G = 6.67300×10-11 m3 kg-1 s-2

haskell naming-conventions

9
推荐指数
2
解决办法
1428
查看次数

是否有支持Scala配置文件的可视化建模工具/语言或样式?

[类似的冠冕堂皇的问题上SO当前活动" 是否有一个可视化建模语言或风格的函数式编程范式? "这是不同的,那么这个问题,因为另一只专注于函数式编程范式,我的问题是寻找一个建模工具支持面向对象范式(它独立地拥有许多成熟的可视化建模UML工具)和功能编程范例的组合.

是否有可视化建模工具/语言或样式支持Scala配置文件(提供并包含所有Scala语言工件),或者可以说它支持面向对象编程范例函数式编程范例.

对于企业级Scala项目,使用什么建模工具 - 业务分析师为逻辑(概念)视图和开发视图准备Visual Models或任何其他类型的模型?

  • 逻辑视图涉及系统为最终用户提供的功能.
  • 开发视图从程序员的角度说明了一个系统,并且关注软件管理.

在软件开发的某些圈子中,正式建模是一项要求,无论您认为这是多么官僚.在项目结束时,不同团队有几个层次的参与,许多相关人员对代码一无所知.他们不需要,如果被问到他们,这将是一个很大的麻烦.正式建模可以确保他们能够更好地了解事物的运作方式,以便他们能够在开发过程中发挥作用.(本段摘自:https://stackoverflow.com/users/166802/codnik)

modeling scala visual-modeler domain-data-modelling

8
推荐指数
1
解决办法
457
查看次数

(谓词<?super String> s)或(String s)

我有一个TreeSet字符串(硬编码).想要检查给定的参数String例如."Person"如果存在于TreeSet中则返回true否则返回false.

在这里我对关于(Predicate<? super String> s)vs 的Eclipse消息感到困惑 (String s):

类型Stream中的方法anyMatch(Predicate)不适用于参数(String)

请指导.

import java.util.Set;
import java.util.TreeSet;
import java.util.function.Predicate;

public class SystemLabelValidator {

    public static boolean ValidateSystemLabel( String s) {  

        String j = s;

        boolean b = false;

        Set <String> SystemLabels = new TreeSet<String>();
        // Unique Strings
        SystemLabels.add("Person");
        SystemLabels.add("Player");
        SystemLabels.add("Hospital");
        SystemLabels.add("Nurse");
        SystemLabels.add("Room");

        System.out.println("\n==> Loop here.");
        for (String temp : SystemLabels) {
            System.out.println(temp);

            if(SystemLabels.stream().anyMatch(j)) {
                System.out.println("I need to return Boolean");
            }
            return b;
        }
        return …
Run Code Online (Sandbox Code Playgroud)

java string predicate java-8 java-stream

8
推荐指数
1
解决办法
272
查看次数

如何修改REPL中的前一行 - scala修改输入错误以节省时间与使用向上/向下箭头输入每一行相比

有可能出现一些键入(在Ubuntu终端 - scala -version Scala代码运行版本2.9.1中)错误,示例如下所示,而不是(l:Int)(l:int)已在参数中键入.

 scala> class Rectangle (l:int, w: Int){
 | val length = l
 | val length = w
    .
    .
    .
    few more lines but still ... module Rectangle is not defined. Or sometimes enter command given and error shows up.
Run Code Online (Sandbox Code Playgroud)

无论如何直接可以编辑/修改输入错误并重新运行代码?它会节省大量时间,否则我会使用向上/向下箭头逐行输入.

请指导.

terminal scala

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

只允许在源代码级别 1.8 或更高版本中引用接口静态方法

我需要什么才能解决这个问题?如何在 Eclipse 项目中更改 JRE 库?

import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
import java.util.stream.Stream;
import java.util.stream.Collectors;

public class LabelGroup {
SortedSet<String> strSet1 = Stream.of("A", "B", "C", "D")
             .collect(Collectors.toUnmodifiableSet());
    
}
Run Code Online (Sandbox Code Playgroud)

Eclipse 在 Stream.of 中显示:

只允许在源代码级别 1.8 或更高版本中引用接口静态方法

尝试按照wiki 的建议从官方站点安装新软件。

回复:

找不到(软件)。

关于 Eclipse:面向企业 Java 开发人员的 Eclipse IDE 版本:2018-12 (4.10.0) 构建 ID:20181214-0600

项目设置:java 构建路径:JRE 系统库 [JavaSE - 1.7]

java eclipse java-stream

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