2015-03-31 1 views
-1

Мне нужно сделать проводное соединение, и я хочу поместить функцию внутри другой функции («help1»), но я не могу заставить ее работать, есть несколько файлов. вот что у меня естьwireworld haskell нужна помощь

module Transitions.For_List_2D (
    transition_world -- :: List_2D Cell -> List_2D Cell 
) where 

import Data.Cell (Cell) 
import Data.Cell (Cell (Head, Tail, Conductor, Empty)) 
import Data.Coordinates 
import Data.Coordinates (Distance,X_Coord,Y_Coord,Coord,Element_w_Coord,) 
import Data.List_2D 
-- Replace this function with something more meaningful: 

transition_world :: List_2D Cell -> List_2D Cell 
transition_world w = case w of 
         [] -> [] 
         x:xs -> transition_cell x : transition_world xs 


transition_cell :: Element_w_Coord Cell -> Element_w_Coord Cell 
transition_cell a = case a of 
         (Head,(x_coord,y_coord)) -> (Tail, (x_coord,y_coord)) 
         (Tail,(x_coord,y_coord)) -> (Conductor, (x_coord,y_coord)) 
         (Empty,(x_coord,y_coord))-> (Empty, (x_coord, y_coord)) 
         (Conductor,(x_coord,y_coord)) -> (i want to put working function here) 


help1 :: Coord -> List_2D Cell -> List_2D Cell 
help1 a = case a of 
     x:xs 
     (Conductor, (x_e, y_e))-> List_2D.local_elements(element, (x_e, y_e)): help1 xs 

local_element является функцией на другой файл, который я хочу использовать также, если требуется, чтобы просмотреть любую ВЭ другие файлов, просто спросите спасибо любой помощи очень ценится

+0

Я думаю, что вы, вероятно, только что испортили «случай ... из» и синтаксис функции, и мы не видим всех ваших определений (например, я думаю, что «Проводник ...» будет «Element_w_Coord Cell», но вы пытаетесь использовать его (?) вместо «List_2D Cell», который будет терпеть неудачу) - в любом случае попробуйте 'help (x: xs) (Conductor ...) = ...' вместо 'help1 a = case a из x: xs ... ', чтобы начать работу – Carsten

+0

В любом случае, пожалуйста, сообщите нам об ошибках, о которых сообщается вам, и укажите на строку, где она показывает ошибку (-и) – Carsten

ответ

0

Вашей help1 функции ожидает два аргумента, но вы даете только один аргумент.

попробовать что-то вроде

help1 coord world = case world of 

Попробуйте сделать свою лабораторию на рекурсии над списками, и прекратить размещение вопросов назначения на переполнение стека, особенно с вашим настоящим именем.

+0

, пожалуйста, оставайтесь на связи и, возможно, вам следует расширить свой ответьте немного - прямо сейчас это не больше, чем комментарий. – Carsten

+0

Мой ответ был, пожалуй, не самым гражданским, но, честно говоря, я просто хочу, чтобы это прекратилось, прежде чем студент рискует получить неудачу (или еще хуже) за плагиат. Это не вопрос, на который можно разумно ответить на то, что дано, и либо студент спрашивает, почему их функция «help1» не работает (в этом случае я ответил на их вопрос), либо они просят разрешения для своих назначение, что является проблематичным. – Probie

+0

Я понимаю, и мой комментарий не был оскорблен - и, скорее всего, ОП потерял всякий интерес, потому что он не мог решить проблему в течение нескольких секунд. Но проблемы с «домашними заданиями» возникают очень часто (см. Http://meta.stackoverflow.com/questions/253792/stack-overflow-and-homework-questions), и я понимаю, что домашние задания - все в порядке, мы только должен позаботиться и дать больше намеков, чем полные ответы (сначала) - мы не учителя или родители здесь, это не наша ответственность, если они собираются обмануть - мы здесь, чтобы помочь – Carsten