小编use*_*227的帖子

在Prolog中排序大型列表:内存不足

我正在尝试使用bubblesort对prolog中的10k元素列表进行排序,我得到了本地堆栈错误.Mergesort似乎是最好的选择,因为我没有得到相同输入的任何错误.但是我真的希望在输入数据很大的情况下获得一些运行时间,但我不能.有任何想法吗?

这是代码:

 %% NOTE: SWI-PROLOG USED

 %% generate_list(Limit, N, L): - insert upper limit and length of list N
 %% to get a random list with N numbers from 0 to limit
 generate_list(_, 0, []).
 generate_list(Limit, N, [Y|L]):-
    N =\= 0,
    random(0, Limit, Y),
    N1 is N-1,
    generate_list(Limit, N1, L).


 %% bubble(L, Ls, max):- insert list L and get max member of list by
 %% swapping members from the start of L.
 bubble([Z], [], Z).
 bubble([X,Y|L], [X|Ls], Z):- X =< …
Run Code Online (Sandbox Code Playgroud)

sorting stack prolog

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

特殊调用验证错误:类型不可分配

我修改了下面字节代码的第15行,并将其从invokevirtual更改为invokespecial(JAVA 8)。不幸的是,我收到验证错误(操作数堆栈上的类型错误)

我知道操作数堆栈的值必须是objectref中指定的类的子类,但是在这种情况下,#18是Type而不是Type $ ClassType,如错误提示所示。或者换句话说,第15行的stackmapframe不应在stack [0]中具有Type而不具有Type $ ClassType吗?我想念什么?

编辑:更改前后的stackmapframes相同。(以防我使用的ASM COMPUTE FRAMES更改了它们)

Exception Details:
  Location:
    com/sun/tools/javac/code/Type$ClassType.toString()Ljava/lang/String; @15: invokespecial
  Reason:
    Type 'com/sun/tools/javac/code/Type' (current frame, stack[0]) is not assignable to 'com/sun/tools/javac/code/Type$ClassType'
  Current Frame:
    bci: @15
    flags: { }
    locals: { 'com/sun/tools/javac/code/Type$ClassType', 'java/lang/StringBuilder' }
    stack: { 'com/sun/tools/javac/code/Type', 'com/sun/tools/javac/code/TypeTag' }
  ...     
  Stackmap Table:
append_frame(@71,Object[#108])
same_frame(@85)
same_frame(@121)
Run Code Online (Sandbox Code Playgroud)

这是代码。Type $ ClassType是Type的直接子类,com / sun / tools / javac / code / Type $ ClassType是当前的类,它允许我们使用invokespecial调用超类(如Type)

    public class com.sun.tools.javac.code.Type$ClassType extends com.sun.tools.javac.code.Type implements
 javax.lang.model.type.DeclaredType
    ....
    public java.lang.String toString();
        descriptor: ()Ljava/lang/String;
        flags: …
Run Code Online (Sandbox Code Playgroud)

java jvm bytecode verifyerror java-8

5
推荐指数
2
解决办法
206
查看次数

CDK CustomResource 属性错误:供应商响应不包含对象中的密钥

使用 CDK,我有一个 aws 自定义资源,我想从其响应中获取值。不幸的是,我一直收到标题中的错误。下面是资源调用的 lambda响应的简化版本:

public class Response {

    private ResponseInfo info;

}
Run Code Online (Sandbox Code Playgroud)

使用此响应的 lambda 处理程序位于此处

我已经在 AWS Lambda 控制台中测试了 lambda 确实返回以下形式的 json:

{
    "info": {...}
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是当我尝试使用以下命令获取它(从触发 lambda 的自定义资源):

flyway_resource.get_response_field("info")
Run Code Online (Sandbox Code Playgroud)

我收到标题中的错误。我有什么想法吗?如何查看自定义资源的响应实际上是什么样子,以便我可以使用正确的键?

您可以在此处查看自定义资源定义

amazon-web-services aws-cloudformation aws-lambda

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