小编box*_*oxy的帖子

使用排序与球拍中的键排序功能列表

(functionsort functionlist value)
Run Code Online (Sandbox Code Playgroud)

functionsort采用2个参数,函数列表和单个值.当给定"value"时,返回以递增顺序排序的相同函数列表.

例如:这是我的功能列表

(define myfunctions (list (lambda (x) (+ x 3)) 
                     (lambda (x) (- 100 x))
                     (lambda (x) (* x 2))))
(define fs 
    (function-sort myfunctions
                   5))
Run Code Online (Sandbox Code Playgroud)

应该返回以下内容

((first fs) 6)   ; (first fs) is (lambda (x) (+ x 3))
9
((second fs) 6)  ; (second fs) is (lambda (x) (* x 2))
12
((third fs) 6)   ; (third fs) is (lambda (x) (- 100 x))   
94
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所得到的:

define (function-sort functions value )
   (map (lambda (y) (y value)) functions)) …
Run Code Online (Sandbox Code Playgroud)

sorting lambda scheme racket

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

序言:硬币找零

我是prolog的新手,试图解决这个经典的硬币找零问题。

用公式M> = 0和M = P + 5 * N + 10 * D来更改(M,P,N,D)这是我的方法

change(M,P,N,D) :-
     M is P+5*N+10*D,
     P is M - (5*N+10*10).
Run Code Online (Sandbox Code Playgroud)

几个测试用例

  change(100,10,8,5).
  True
  change(X,10,8,5).
  X = 100.
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试

 change(100,P,8,5).
Run Code Online (Sandbox Code Playgroud)

它给了我“参数没有被充分实例化”,而不是P = 10。

编辑:通过在谓词之间(0,M,P),之间(0,M,N),之间(0,M,D),之间的谓词来修复我的代码,M是P + 5 * N + 10 * D。

prolog coin-change

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

标签 统计

coin-change ×1

lambda ×1

prolog ×1

racket ×1

scheme ×1

sorting ×1