Код-гольф: Обход двумерного массива змейкой

1,00
р.
Задача соревнования:
Имеется двумерный массив N x N. Нужно написать функцию обхода двумерного массива змейкой от правого ребра. Пример на картинке.


Пример двумерного массива:
На входе имеется следующий массив:
input = [[4, 3, 2, 1], [5, 6, 7, 8], [12, 11, 10, 9], [13, 14, 15, 16]]
На выходе одномерный массив после обхода:
output = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
Может использоваться любой язык.
Основное условие: функция должна работать корректно для любого равностороннего двумерного массива.
Указывать название языка в заголовке ответа и количество символов минифицированной версии функции через запятую.
Победителем станет тот, кто напишет ее за меньшее количество символов. За это он получает 300 репутации. Победитель определится через 2 недели (12 января).
Ответ автора не учитывается при выборе победителя. Желаю удачи :)
Таблица лидеров:


execute("ru.stackoverflow.com", 926927)


Победители:
1 место: Haskell - 39 (@АндрейNOP)
2 место: JavaScript - 40 (@Groxan)
3 место: Groovy - 42 (@Nick)
Всем огромное спасибо за участие и интересные решения )

Ответ
Haskell, 39 40 42
r=reverse s[]=[] s(h:t)=r h++s(map r t)
https://ideone.com/JYttmr