2015-02-06 2 views
0

Я хочу поместить два списка в один список, но не используя append. Он получит два списка. Я хочу, чтобы эти два списка были двумя элементами в новом списке. В новом списке есть только два элемента: первый список и второй список.Как получить два списка в один список как два элемента?

ответ

2

Вот один из способов сделать это:

let list2 a b = [ a; b ] 

Это работает для любых двух значений a, b, одного и того же типа. Они могут быть списки или что-нибудь еще:

$ ocaml 
     OCaml version 4.01.0 

# let list2 a b = [a; b];; 
val list2 : 'a -> 'a -> 'a list = <fun> 
# list2 [1;2] [3;4];; 
- : int list list = [[1; 2]; [3; 4]] 
# list2 "yes" "no";; 
- : string list = ["yes"; "no"] 
# 

(.. Если два списка не тот же тип, что это не возможно, чтобы поместить их в список списков OCaml однородны - все элементы имеют один и тот же тип)

0

Вы можете использовать функцию сделать так:

Использование Append() непосредственно не дает желаемого result.See фрагменты кода для списка, содержащего несколько списков. def foo(list1,list2): new_list =[] for i in range(0,len(list1)): new_list.append(list1[i]) for j in range(0,len(list2)): new_list.append(list2[j]) return new_list

+1

(ОП запрашивает решение OCaml.) –

Смежные вопросы