English 中文(简体)
地图
原标题:Map a list of functions to a list

这是家事,因此我不想回答。 我只需要朝着正确方向前进。 我必须把多项职能列入清单。 例如:

(map-multi (list plus-one square)  (4 5 6)) => (25 36 49)

我能够把第一个职能与清单的内容联系起来,但是,我在此之后就失去了。 此外,由于这一介绍,我仅限作介绍性职能(const,append ,car,cdr, x, 等)

(define (map-multi f l)  
    (cond  
        ((null? l)  
            l)  
        (else (cons ((car f) (car l))  
            (map-multi f (cdr l))))))  
最佳回答

页: 1 页: 1 简而言之,请允许我指出,名单上只有两个职能——因此,你需要将第一项职能适用于人数清单中的现有内容,然后将第二项职能适用于结果。 如果您能够使用code>compose ,则程序将遵循这一条,并在你的法典中修改这一条:

((car f) (car l)) ; you re applying only the 1st function! what about the 2nd?

......

((compose (cadr f) (car f)) (car l))       ; now we re applying both functions

如果您能够使用<代码>compose,则将同一行文改为:

((cadr f) ((car f) (car l)))               ; now we re applying both functions

现在,如果问题更为普遍,并且你再次要求用两个以上的内容来规划一份职能清单,那么,你在法典中再次将同一条线改为:

((compose-multi f) (car l))

通过接连电话< 编码>兼容<> > 代码/代码>,履行构成和回收清单中所有职能的辅助职能。 这是一项留给你的工作,因为这项工作是家务,但如果你理解上述法典如何只发挥两项职能,那么就应当很容易地扩大多重职能清单的结果:

(define (compose-multi flist)      ; procedure for composing a list of functions
  (if (null? flist)                ; if the list is empty then
      <???>                        ; return the identity function
      (<???> (compose-multi <???>) ; else compose the result of recursive call
             <???>)))              ; with the current element in the list

通知说,如果职能清单中没有任何内容,则在处理案件时需要身份功能;它非常简单地界定,它只是回报了作为参数的相同价值。

还意识到compose-multi 回归 Function<>em>,其结果为:将清单中的所有职能编为compose。 你们就是这样做的,但是,如果你再次不允许使用它,那就只是记住:

(compose x y)

......

(lambda (n) (x (y n)))
问题回答

作为两项职能撰写文章可能比较容易。 其中一份载有一份职能清单和一份投入,并在系列中适用清单中的所有职能。 一项职能申请的产出将是对下一个职能的投入;一俟你履行职务,你将完成这项工作。

另一项职能将只是从投入清单中规划这一助手的职能。

这里是界定<代码>多图<>/代码”的一种替代方法,其组成不使用“<代码>>的。 由于你只允许使用介绍性职能,这实际上不是对你的任务的答案。 但是,如果你写上你自己对<条码>的界定(<>/条码>)。 (过去太久!)

(define (multi-map operations input)
  (fold map input operations))

> (multi-map (list 1+ square)
              (4 10 8))
$2 = (25 121 81)

> (multi-map (list 1+ square 1+) 
              (4 10 8))
$3 = (26 122 82)

要取得热情,首先要有一个更简单的问题。 然后将解决办法概括起来。

您将如何写这一职能?

(define (map-single fs x)
  ...)

> (map-single (list double add1) 3)
7

这份清单是:作为论据和编号的职能值的<代码>fs,并计算了在<代码>fs至中适用(composition of)职能的价值?





相关问题
Parsing with DCGs in Scheme (without Prolog)?

Lots of Prolog-in-Scheme implementations are out there. E.g. Kanren, Schelog. Apparently in "Paradigms of AI Programming" Norvig implements Prolog-to-Lisp compiler in Lisp in order to use Definite ...

Applying a symbol as a procedure

Suppose I have a simple symbol: > + + Is there any way I can apply that symbol as a procedure: > ((do-something-with +) 1 2) 3 So that + is evaluated to the procedure +?

string-split in DrScheme

How do I do equivalent of python s str.split in DrScheme? SRFI-13 doesn t seem to have it provided.

Scheme, getting the pointer from pointed struct

Assume I have a such struct: (define-struct node (value next)) ;and making 2 nodes, parent pointing to child as next. (define child (make-node 2 null)) (define parent (make-node 1 child)) Under ...

How to solve the following equation using accumulate (Scheme)

I m trying to do the following problem (there is a formula so I print-screened and uploaded it) Formula http://img248.imageshack.us/img248/6558/problemh.jpg (http://img248.imageshack.us/img248/6558/...