小编kla*_*ose的帖子

你如何在Haskell中使用foldr定义地图和过滤器?

我正在做一些关于函数式语言的自学(目前正在使用Haskell).我遇到了一个基于Haskell的任务,需要根据foldr定义地图和过滤器.对于我的生活,我不完全理解如何去做.

例如,当我定义一个地图函数时:

map'            :: (a -> b) -> [a] -> [b]
map' f []       = []
map' f (x:xs)   = foldr (\x xs -> (f x):xs) [] xs
Run Code Online (Sandbox Code Playgroud)

我不知道为什么列表的第一个元素总是被忽略.意思是:

map' (*2) [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

得出[4,6,8]而不是[2,4,6,8]

同样,我的过滤器功能:

filter'             :: (a -> Bool) -> [a] -> [a]
filter' p []        = []
filter' p (x:xs)    = foldr (\x xs -> if p x then x:xs else xs ) [] xs
Run Code Online (Sandbox Code Playgroud)

当运行时:

filter' even [2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)

结果为[4,6]而不是[2,4,6]

为什么会这样呢?我应该如何定义这些函数以获得预期的结果?我假设我的lambda表达式有问题......

haskell functional-programming map filter fold

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

在F#中,如何合并2个Collections.Map实例?

我正在尝试合并两个地图,但没有用于加入集合的内置方法.你是怎么做到的?

collections f#

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

在Scala中进行模式匹配时,查看如何使用"@ _*"的示例

我一直在搜索,但找不到任何演示模式匹配案例类的@ _*的示例.

下面是我所指的那种应用程序的示例.

def findPerimeter(o: SomeObject): Perimeter = o match {
case Type1(length, width) =>
  new Perimeter(0, 0, length, width)
case Type2(radius) =>
  new Perimeter(0, 0, 2*radius, 2*radius)
...

case MixedTypes(group @_*) => {
  \\How could @_* be used to check subpatterns of group?
}
Run Code Online (Sandbox Code Playgroud)

}

如果有人可以向我展示一些示例,或者将我指向一个网页,其中包含一些很棒的示例.

谢谢

scala operators pattern-matching

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

为什么maven不包含我的jar中的JSP文件?

我有一个嵌入式jetty(版本8.1.8)Web应用程序,我打包为jar,并使用JSP作为其前端.它使用maven 3.0.3版本构建.问题在于,当我这样做时:mvn package除了我的*.jsp文件之外,它包含了所有内容.我试图将它们重新安置在许多不同的地方,但没有运气.

我试图添加<include>src/main/java/**/*.jsp</include>maven-compiler-plugin我的pom部分.但那也没有效果.

有没有办法确定jsp文件包含在内?

java jsp web-applications jetty maven

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

需要帮助搞清楚scala编译器错误

我一直在使用scala进行项目,但是我收到一些我不太了解的错误消息.我正在使用的课程相对简单.例如:

abstract class Shape
case class Point(x: Int, y: Int) extends Shape
case class Polygon(points: Point*) extends Shape
Run Code Online (Sandbox Code Playgroud)

现在假设我创建了一个Polygon:

val poly = new Polygon(new Point(2,5), new Point(7,0), new Point(3,1))
Run Code Online (Sandbox Code Playgroud)

然后,如果我试图确定可能包含多边形的最小可能矩形的位置和大小,我会得到各种我不太了解的错误.

下面是不同尝试的片段以及它们产生的相应错误消息.

val upperLeftX = poly.points.reduceLeft(Math.min(_.x, _.x))
Run Code Online (Sandbox Code Playgroud)

给出错误:
" 扩展函数缺少参数类型((x $ 1)=> x $ 1.x) "

val upperLeftX =  
         poly.points.reduceLeft((a: Point, b: Point) => (Math.min(a.x, b.x)))
Run Code Online (Sandbox Code Playgroud)

给出这个错误:
" 类型不匹配;
找到:( Point,Point)=> Int
required :( Any,Point)=> Any
"

我对这两个错误消息都非常困惑.如果有人能够更清楚地解释我做错了什么,我会非常感激.是的,我看到第二个错误说我需要输入"Any"但我不明白如何实现一个可以根据需要进行更改的更改.显然,简单地将"a:Point"改为"a:Any"并不是一个可行的解决方案,所以我错过了什么?

reduce scala compiler-errors

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

构建protobuf示例应用程序的问题

我是protobufs的新手,并试图了解更多关于使用它们的信息.我已经下载了从这里打包的protobuf .存档的examples文件夹中有一个README.txt文件,它提供了有关如何构建2个示例应用程序的说明.但是当我按照这些说明构建java应用程序时:

make java
Run Code Online (Sandbox Code Playgroud)

我得到了很多错误,然后是:

100个错误
:* [javac_middleman]错误1

所有100个错误似乎都与类路径相关,因为这是一个典型的例子:

com/example/tutorial/AddressBookProtos.java:37:错误:包com.google.protobuf不存在

关于如何通过这个的任何想法?

java protocol-buffers

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

你将如何在F#中实现beta减少功能?

我正在用F#写一个lambda演算,但是我坚持实现beta-reduction(用形式参数代替实际参数).

(lambda x.e)f
--> e[f/x]
Run Code Online (Sandbox Code Playgroud)

用法示例:

(lambda n. n*2+3) 7
--> (n*2+3)[7/n]
--> 7*2+3
Run Code Online (Sandbox Code Playgroud)

因此,我希望听到一些关于其他人如何做到这一点的建议.任何想法将不胜感激.

谢谢!

f# lambda-calculus

5
推荐指数
1
解决办法
1497
查看次数

Wicket:是否可以根据添加面板的页面显示面板的组件?

我对Wicket很新,所以请原谅我这是一个简单的任务.我试图寻找例子但是空洞的.

这是场景.假设我有一个客户信息面板,包含25个数据点(名称,dob,地址,电话等).我想在网站的许多不同页面中重用此面板.现在假设我在面板上显示的3个不同页面上有以下条件:

  • 第1页 - 所有字段均可见且可编辑
  • 第2页 - 出生日期,性别,客户名称可见但不可编辑,所有其他字段均可见且可编辑
  • 第3页 - 出生日期和性别不可见,地址可见且可编辑,所有其他字段均可见但不可编辑.

有没有办法使用相同的面板(减少代码重复),但根据面板加载到的当前页面控制其组件?

谢谢你的帮助!

templates wicket panel webpage-rendering wicket-1.5

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

Cassandra在读/写期间是否锁定数据目录中的文件?

我知道在Cassandra上线时可以拍摄快照.这样做是在每个列族目录中创建一个快照子目录,并在其中放置列族的副本.但我不知道这是否可行,因为根本没有文件锁定,或者如果快照指令只是在复制之前等待文件解锁.

有谁知道Cassandra如何与数据目录中的文件进行交互?行为操作系统是否依赖?

filesystems operating-system file cassandra

0
推荐指数
1
解决办法
302
查看次数