有没有办法将方案中的“car”和“cdr”写入Java?

时间:2015-09-18 00:30:14

标签: java scheme

基本上需要的是能够使用像汽车这样的Lisp表达式(返回指向多列表的第一部分的指针)和cdr(返回指向多列表的第二部分的指针)。 “car”和“cdr”几乎需要指向列表的第一和第二位置。

1 个答案:

答案 0 :(得分:3)

我猜你正在寻找这样的东西:

import java.util.Arrays;
import java.util.List;

public class Main {

    static <T> T car(List<T> list) {
        return list.get(0);
    }

    static <T> List<T> cdr(List<T> list) {
        return list.subList(1,list.size());
    }

    public static void main(String[] args) {
        List<String> list = Arrays.asList("A","B","C","D");

        String head = car(list);
        List<String> tail = cdr(list);

        System.out.println(head); // "A"
        System.out.println(String.join(",", tail)); // "B,C,D"
    }
}