elementos - dividir listas c#
Dividir una lista de Erlang, X, en una lista de todas las sublistas de X (1)
Supongo que su caso de prueba se está olvidando [1,3,4], pero podría verse más o menos así:
-module(settheory).
-export([combinations/1]).
combinations([]) ->
[];
combinations([H | T]) ->
CT = combinations(T),
[[H]] ++ [[H | L] || L <- CT] ++ CT.
-include_lib("eunit/include/eunit.hrl").
combinations_test() ->
?assertEqual(
combinations([1,2,3,4]),
lists:sort([[1], [2], [3], [4], [1,2], [1,3], [1,4],
[2,3], [2,4], [3,4], [1,2,3], [1,2,4], [1,3,4],
[2,3,4], [1,2,3,4]])),
ok.
lists:sublist/2
y lists:sublist/3
simplifican la extracción de una sola sublista de una lista, pero ¿hay un BiF o módulo que devuelve una lista de todas las sublistas de una lista?
es decir
lists:awesome_sublist_function([1,2,3,4]) ->
[[1], [2], [3], [4], [1,2], [1,3], [1,4],
[2,3], [2,4], [3,4], [1,2,3], [1,2,4], [1,3,4], [2,3,4], [1,2,3,4]]
Puede construir el mío, pero me pregunto si el problema se ha resuelto antes en cualquier lugar.