Keluaran mengejutkan dari algoritma Elixir rekursif [duplikat]

Saya mulai membuat sketsa struktur algoritma rekursif yang akan membangun daftar kedekatan persimpangan ubin hex di papan permainan gaya Settlers of Catan. Namun itu bukanlah masalah mendesak yang perlu saya selesaikan.

Masalah yang saya alami dapat ditemukan pada keluaran yang saya tempelkan di bawah contoh kode. Beberapa nilai di baris pertama dan terakhir keluaran tampak berupa string tanpa alasan yang jelas.

Saya berharap pengembang Elixir yang lebih berpengalaman akan mengenali alasan keluaran yang rusak dan dapat menjelaskan mengapa hal itu terjadi dan apa yang harus dilakukan untuk mengatasinya.

  def recurse_outer() do                                                                                                                             
    list = [Enum.into(0..5, []),                                                                                                                     
            Enum.into(6..23, []),                                                                                                                    
            Enum.into(24..53, [])                                                                                                                    
           ]                                                                                                                                         
    Enum.map(list, &recurse_inner(&1))                                                                                                               
  end                                                                                                                                                

  defp recurse_inner(list, index \\ 0, result \\ [])                                                                                                 
  defp recurse_inner([head | tail] = list, index, result) do                                                                                         
    next =                                                                                                                                           
      case tail do                                                                                                                                   
        [next | tail] -> next                                                                                                                        
        [] -> :no_next                                                                                                                               
      end                                                                                                                                            

    adjacencies = [head, next]                                                                                                                       

    recurse_inner(tail, index + 1, [adjacencies | result])                                                                                           
  end                                                                                                                                                
  defp recurse_inner([], _, result), do:                                                                                                             
    Enum.reverse(result)

keluaran:

iex(159)> Board.recurse_outer
[[[0, 1], [1, 2], [2, 3], [3, 4], [4, 5], [5, :no_next]],
 [[6, 7], '\a\b', '\b\t', '\t\n', '\n\v', '\v\f', '\f\r', [13, 14], [14, 15],
  [15, 16], [16, 17], [17, 18], [18, 19], [19, 20], [20, 21], [21, 22],
  [22, 23], [23, :no_next]],
 [[24, 25], [25, 26], [26, 27], [27, 28], [28, 29], [29, 30], [30, 31],
  [31, 32], ' !', '!"', '"#', '#$', '$%', '%&', '&\'', '\'(', '()', ')*', '*+',
  '+,', ',-', '-.', './', '/0', '01', '12', '23', '34', '45', [53, :no_next]]]

person Christopher Milne    schedule 27.07.2017    source sumber
comment
Beri tahu saya jika jawaban itu tidak sepenuhnya menjawab pertanyaan Anda.   -  person Dogbert    schedule 27.07.2017
comment
Terima kasih @Dogbert. Memang benar.   -  person Christopher Milne    schedule 27.07.2017