如果我有一个接受3个参数并返回列表的函数:
<?php
//require_once "database.php";
class db
{
public function __construct()
{
}
public static function Somefunction($pr1 = null, $pr2 = null) // you forgot to declare a 'function'
{
echo 'hello from db';
}
}
class database
{
public $db = null;
public function __construct()
{
$this->db = new db();
}
public function myFun()
{
$result = $this->db->Somefunction($pr1 = null, $pr2 = null);
}
}
$invoke = new database();
$invoke->db->Somefunction();
我有一个这样的列表清单:
(some-function 1 2 3) --> '(3 2 1)
如何映射“某些功能”以将所有列表用作元素?
谢谢。
答案 0 :(得分:2)
如果列表仅嵌套一次,则可以使用fold
和append
将它们变成单个列表,并用some-function
对结果调用apply
,即
(fold append '() '((1 2 3) (2 1 3) (3 2 1))) => (2 3 1 3 2 1 1 2 3)
(apply some-function (2 3 1 3 2 1 1 2 3))
否则,您可以将apply
和some-function
包装在传递给map
的lambda中
(map (lambda (x) (apply some-function x)) '((1 2 3) (2 1 3) (3 2 1)))
答案 1 :(得分:2)
我不确定你的意思是什么。
(define (rev-list a b c)
(list c b a))
(rev-list 1 2 3)
⇒ (3 2 1)
(apply rev-list '((1 2 3) (2 1 3) (3 2 1)))
⇒ ((3 2 1) (2 1 3) (1 2 3))
(map (lambda (l) (apply rev-list l)) '((1 2 3) (2 1 3) (3 2 1)))
⇒ ((3 2 1) (3 1 2) (1 2 3))