小编Dav*_* L.的帖子

Scala - 如何在非函数类型上使用Functors?

在阅读此博客上的Functors说明时:

https://hseeberger.wordpress.com/2010/11/25/introduction-to-category-theory-in-scala/

Functor的一般定义和更具体的定义:

trait GenericFunctor[->>[_, _], ->>>[_, _], F[_]] {
  def fmap[A, B](f: A ->> B): F[A] ->>> F[B]
}
trait Functor[F[_]] extends GenericFunctor[Function, Function, F] {
  final def fmap[A, B](as: F[A])(f: A => B): F[B] =
    fmap(f)(as)
}
Run Code Online (Sandbox Code Playgroud)

显然,这意味着Functors可以与除Function对象之外的其他更高级别的类型一起使用.有人可以举一个例子或解释如何或为什么或在什么情况下做?也就是说,GenericFunctor的另一个实现是什么?在Scala中 - 使用函数中的不同类型构造函数?谢谢!

编辑:

只是为了澄清:

object Functor {

  def fmap[A, B, F[_]](as: F[A])(f: A => B)(implicit functor: Functor[F]): F[B] =
    functor.fmap(as)(f)

  implicit object ListFunctor extends Functor[List] {
    def fmap[A, B](f: A => B): List[A] => List[B] =
      as => as map …
Run Code Online (Sandbox Code Playgroud)

functional-programming scala function functor category-theory

8
推荐指数
2
解决办法
1625
查看次数

结构子类型反射

我们可以val s: String从函数外部获得使用反射的类型f吗?

val f = (r: {val s: String}) => {
}
Run Code Online (Sandbox Code Playgroud)

reflection scala structural-typing

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

Tilde扩展在Docker COPY命令中不起作用

我有一个Dockerfile,其中包含以下行:

COPY *.zip ~user1
Run Code Online (Sandbox Code Playgroud)

用户user1已经存在并且具有主目录(即/home/user1).当然,目标是将zip文件复制到该用户的主目录中,但上述结果是将zip文件复制到/~user1图像中字面上的文件中.

以下工作按预期工作:

COPY *.zip /home/user1
Run Code Online (Sandbox Code Playgroud)

这是Docker中的错误还是有与我不知道的代字号扩展有关的限制?

在Mac上使用Docker 1.13.0.

tilde-expansion docker dockerfile

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

Spring WebClient:如何将大byte []流式传输到文件?

看起来Spring RestTemplate不能将响应直接流式传输到文件而不将其全部缓存在内存中。使用较新的Spring 5实现此目标的合适方法是WebClient什么?

WebClient client = WebClient.create("https://example.com");
client.get().uri(".../{name}", name).accept(MediaType.APPLICATION_OCTET_STREAM)
                    ....?
Run Code Online (Sandbox Code Playgroud)

我看到人们已经找到了解决此问题的一些变通方法/技巧RestTemplate,但是我对使用正确的方法更感兴趣WebClient。

有许多RestTemplate用于下载二进制数据的示例,但是几乎所有示例都将其加载byte[]到内存中。

java spring project-reactor spring-webflux spring-webclient

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

Spring @Configuration(非xml配置)用于注释驱动的任务

任何人都可以解释如何在没有任何XML配置的情况下使用@Scheduled注释实现任务的基本配置吗?我可以找到的所有示例至少使用最小的XML配置.例如:

http://blog.springsource.com/2010/01/05/task-scheduling-simplifications-in-spring-3-0/

这使用典型的:

  <context:component-scan base-package="org/springframework/samples/task/basic/annotation"/> 
  <task:annotation-driven/>
Run Code Online (Sandbox Code Playgroud)

所以我只是使用@Configuration注释和一堆@Bean注释.它们都是在启动时实例化的,但是@Scheduled的那个没有运行.我在过去使用XML配置时成功使用了该注释,但从未使用过注释.

spring annotations spring-mvc scheduled-tasks

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

Gradle:战争任务有冲突包含/排除

我正在尝试使用Gradle构建一个war文件,但我遇到的问题是排除一个目录并包含另一个恰好具有相同名称但不同父目录的目录.

请注意下面的第一个代码示例中,css/最终war文件中都没有包含任何目录 - 我假设因为Gradle认为我想要排除任何名称css/而不管其绝对路径.

基本上我想排除src/main/webapp/css和包含build/tmp/css因为后者包含缩小的代码.我怎样才能做到这一点?我已尝试以各种方式指定绝对路径,但没有取得任何成功.

war {
  dependsOn minify
  from('build/tmp/') { include ('css/') }
  exclude('WEB-INF/classes/', 'css/')
}
Run Code Online (Sandbox Code Playgroud)

如果我不这样排除css/:

war {
  dependsOn minify
  from('build/tmp/') { include ('css/') }
  exclude('WEB-INF/classes/')
}
Run Code Online (Sandbox Code Playgroud)

然后结果是包括缩小和非缩小代码.

java groovy build-process build gradle

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

修改jQuery扩展以推送对象中的数组项,但扩展其他对象

我认为这一定是一个常见的问题,但似乎无法找到解决方案.使用JSON配置文件来扩展包含对象和数组的jQuery对象.

对于对象和简单属性,我想覆盖(extend很好).

对于阵列,可能存在也可能不存在现有项目.

目前,数组只会覆盖第一个元素

var sourceObj = {propterty:"change Me",anArray:[{name:"first"},{name:"second"}]},
    configJSON = '{"propterty":"New Val","anArray":[{"name":"third"}]}',
    configObj = JSON.parse(configJSON);

$.extend(true,sourceObj,configObj);
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/PmuwV/

返回:

{propterty:"New Val" , anArray:[{name:"third"},{name:"second"}}
Run Code Online (Sandbox Code Playgroud)

我可以改为:

{propterty:"New Val",anArray:[{name:"first"},{name:"second"},{name:"third"}]}
Run Code Online (Sandbox Code Playgroud)

而且还允许更新"第一"和"第二"对象?

"anArray":[{"name":"second","newProp":"add newProp to second"}]
Run Code Online (Sandbox Code Playgroud)

可以/应该extend修改以比较数组项并根据某些规则扩展或添加或设置属性值,如"名称"?

感谢您的任何建议或指示.

javascript jquery extend

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

如何将ViewModel Store绑定到View?

我是一个非常新的Ext JS,并尝试在一个Panel中嵌入一​​个MultiSelect.

该ViewModel有一个stores属性,你可以在这里看到:

Ext.define('TEST.view.controls.search.SearchFilterModel', {
    extend: 'Ext.app.ViewModel',
    alias: 'viewmodel.filter',
    data: {
        title: ''
    },
    stores: {
        test: {
            fields: ['id', 'name'],
            proxy: {
                type: 'ajax',
                url: 'api/test',
                reader: 'array'
            },
            autoLoad: true
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

我想在我View这样绑定:

viewModel: {
    type: 'filter'
},


layout: 'fit',
border: 1,
plain: true,
scrollable: 'y',
layout: 'fit',


bind: {
    title: '{title}',
},


items: {
    xtype: 'multiselect',
    scrollable: false,
    allowBlank: true,
    ddReorder: true,
    bind: {
        store: '{test}' …
Run Code Online (Sandbox Code Playgroud)

javascript extjs mvvm extjs6

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

Gradle构建的.war文件中的重复文件

我的Gradle构建脚本存在重复文件问题.

我的目录结构是maven标准,还有一些用于各种构建配置的额外目录:

/src/main/java
/src/main/resources
/src/main/dev/resources
/src/main/prod/resources
Run Code Online (Sandbox Code Playgroud)

来自/src/main/resources和/src/main/dev/resources显然由processResources和war任务处理的文件,最终在.war文件中两次.如何在不手动排除war配置中的每个文件的情况下防止这种情况发生?

我的整个build.gradle包含在下面; note 默认buildEnvironment设置为dev,但也可以prod.

apply plugin: "sonar"
apply plugin: "war"
apply plugin: "eclipse-wtp"

// ************************************************************************************************
// GENERAL CONFIGURATION
// ************************************************************************************************

sourceCompatibility = 1.6
group = "com.foo"
archivesBaseName = "security"
version = "0.1-SNAPSHOT"

// versions of various components where we need more than one and may want to update often
def springVersion = "3.1.1.RELEASE"
def tomcatVersion = "7.0.25"
def jasperVersion …
Run Code Online (Sandbox Code Playgroud)

java build-process build duplicates gradle

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

Gradle:如何编译使用com.sun.xml.internal.bind.*的类?

我正在将现有项目从ant转换为Gradle.

不幸的是,有一个Java类使用com.sun.xml.internal.bind.DatatypeConverterImpl.有一件事我会考虑更换这种用法,但此时我只是好奇为什么Gradle找不到那个类,导致编译失败.

信息是

package com.sun.xml.internal.bind does not exist
Run Code Online (Sandbox Code Playgroud)

请注意,它在eclipse中编译良好以及使用javac ant任务.JAVA_HOME设置为1.6.0_27.

那么Gradle的独特之处在于默认情况下它会导致它找不到这个类,怎么可能有人解决这个问题呢?




请参阅Java代码段,后跟build.gradle文件:

final class Test{
    private static final javax.xml.bind.DatatypeConverterInterface DTC = com.sun.xml.internal.bind.DatatypeConverterImpl.theInstance;

    .....
    DTC.printDateTime(Calendar.getInstance());
}
Run Code Online (Sandbox Code Playgroud)


apply plugin: 'java'
apply plugin: 'application'

mainClassName = "com.foo.bar.Test"
sourceCompatibility = 1.6
version = '5.4.0'

jar {
    manifest {
        attributes 'Implementation-Title': 'Foo', 'Implementation-Version': version, 'Implementation-Vendor': 'Bar'
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'commons-lang', name: 'commons-lang', version: '2.4'    
    compile group: 'com.google.guava', name: 'guava', version: '10.0.1'    
    compile group: 'org.hibernate.javax.persistence', name: 'hibernate-jpa-2.0-api', version: '1.0.1.Final' …
Run Code Online (Sandbox Code Playgroud)

java eclipse maven-2 classpath gradle

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