2013-10-26 2 views
-1

Я хочу передать 2D массив в виде кортежа функции Haskell
что-то похожее на:
public int foo(int [][] array)
Я пытался что-то вроде:передать 2D кортеж в функцию Haskell

indexList :: [(Integer)] -> [Integer] 
indexlist ([]) = 


, как я могу это сделать

+5

Что вы имеете в виду "2D массив в виде кортежа"? Это массив или кортеж, или это набор массивов или массив кортежей, или. , , ? –

+0

Могу ли я предложить [учебник] (http://www.haskell.org/haskellwiki/Tutorials)? –

ответ

1
  • Список: упорядоченная коллекция, элементы которой должны иметь один и тот же тип - [1,1,1]
  • Tuple: Упорядоченная коллекция фиксированной длины, где элементы могут иметь разные типы - (1, "abc")
  • Set: неупорядоченная коллекция уникальных элементов - см Data.Set

Для реализации «что-то похожее на public int foo(int [][] array)» в Haskell передача списка, вероятно, будет способом. Списки разделяются квадратными скобками - [[Integer]], таким образом, переводится как «список списков типа Integer». Следующая примерная функция отображает функцию суммы в такой список и возвращает список возвращаемых значений.

sums :: [[Integer]] -> [Integer] 
sums xss = map sum xss 

*Main> sums [[1..5], [3..5]] 
[15,12] 
+2

Пожалуйста, не вызывайте списки списков. – kosmikus

Смежные вопросы