169 похожих чатов

Всем привет. Подскажите, пожалуйста, возможно ли определить тип для двумерной

матрицы, состоящей из элеметов типа Int, таким образом, чтобы под него подходили матрицы произвольного размера?

Другими словами, если есть:
- тип матрицы Matrix,
- тип трансформации MatrixTransform :: Matrix -> Matrix,

и если:
- S это множество трансформаций типа MatrixTransform,
- • это . (function composition),
- identity - это функция id,

То является ли это моноидом?

Конкретно меня интересует ассоциативность.

. :: (b -> c) -> (a -> b) -> (a -> c)

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

Думаю, конструктор можно как минимум определить как [Int] -> h -> w, главное, чтобы h * w были равны длине списка.

3 ответов

3 просмотра

Технически, честного моноида тут не получится, получится категория

Ilya-Chernov Автор вопроса

https://hackage.haskell.org/package/matrix-0.3.6.1/docs/src/Data-Matrix.html#Matrix Вот тут что-то похожее сделано

если есть тип Matrix : Nat -> Nat -> Type который представляем матрицу n*m в виде значения типа Matrix n m то для любых n : Nat, множество функций Matrix n n -> Matrix n n с функцией (\x. x) : Matrix n n -> Matrix n n в качестве id будет моноидом

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
32
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Карта сайта