Erlang 二郎。删除列表的第一个季度,第三个季度的元素按与给定相反的顺序排列

Erlang 二郎。删除列表的第一个季度,第三个季度的元素按与给定相反的顺序排列,erlang,Erlang,长度为4的倍数的集合列表。删除列表的第一个季度,第三个季度的元素按与给定相反的顺序排列。这是我的变体-> -import(lists, [filter/2, member/2, split/2, reverse/1]). foo(L) when (length(L) rem 4) =/= 0 -> "Your list in non-multiple to 4!!!"; foo(L) -> {Sub1, Sub2} = split(length(L) div 2, L),

长度为4的倍数的集合列表。删除列表的第一个季度,第三个季度的元素按与给定相反的顺序排列。这是我的变体->

-import(lists, [filter/2, member/2, split/2, reverse/1]).

foo(L) when (length(L) rem 4) =/= 0 -> "Your list in non-multiple to 4!!!";
foo(L) ->   {Sub1, Sub2} = split(length(L) div 2, L),
            { _ ,Second} = split(length(Sub1) div 2, Sub1),
            {Third,Fourth} = split(length(Sub2) div 2, Sub2),
             Second ++ reverse(Third) ++ Fourth.

也许有人有更好的办法。谢谢

我有非常有效的解决方案:

2> timer:tc(fun(L) -> fun() -> F(L) end end(lists:seq(1, 1000000))).
{22770,
 [250001,250002,250003,250004,250005,250006,250007,250008,
  250009,250010,250011,250012,250013,250014,250015,250016,
  250017,250018,250019,250020,250021,250022,250023,250024,
  250025,250026,250027|...]}
3> timer:tc(fun(L) -> fun() -> F(L) end end(lists:seq(1, 32))).                                                                                                                                                                                                       
{79,                                                                                                                                                                                                                                                                   
 [9,10,11,12,13,14,15,16,24,23,22,21,20,19,18,17,25,26,27,28,                                                                                                                                                                                                          
  29,30,31,32]}

你会给我多少钱买
F/1
definition?

你试过什么吗?