2016-03-30 4 views
0

Ich habe eine Funktion in meinem Blick über eine Funktion iteriert, die ich dynamisch verwenden, um HTML-Elemente in meinen Vorlagen zu erstellen:Fehler bei dem mit zwei Argumenten in meiner Vorlage

defmodule Recursion do 
     def buildElements(element,n) when n <= 1 do 
      element 
     end 
     def buildElements(element, n) do 
      [element | buildElements(element, n - 1)] 
     end 
    end 

Es ist große Arbeit, wenn ich versuche zu iterieren es in meiner Vorlage:

<%= for element <- MyProject.PageView.Recursion.buildElements("LOL", 2) do %> 
      <%= element %> 
    <% end %> 

ich diesen Fehler:

no function clause matching in Enum."-reduce/3-lists^foldl/2-0-"/3 

Was ist das Problem?

Antwort

1

Es ist nur eine kleine Änderung, um Ihr Problem zu lösen.

Sie versuchen, ein Element zu einer Liste mit der Notation [foo | bar] hinzuzufügen. bar muss eine Liste sein, während foo ein einzelnes Element ist.

Ändern Sie Ihre element zu [element] und es ist fertig.

def buildElements(element,n) when n <= 1 do 
    [element] 
end 

def buildElements(element, n) do 
    [element | buildElements(element, n - 1)] 
end 
Verwandte Themen