gpt4 book ai didi

haskell - 将函数应用于矩阵的每个元素

转载 作者:行者123 更新时间:2023-12-03 09:57:14 25 4
gpt4 key购买 nike

我正在尝试将函数应用于矩阵,但我不知道如何继续。

这是我如何定义我的 Matrix :

data Matrice a = Mat [[a]]

montre [] = "/"
montre (t:q) = "" ++ (Pp.printf "%5s" (show t)) ++ " " ++ (montre q)

instance (Show a) => Show (Matrice a) where
show (Mat ([])) = ""
show (Mat (t:q)) = "/" ++ (montre t) ++ "\n" ++ (show (Mat q))

然后,一旦我的矩阵被定义,我想应用我的函数 z95矩阵的每个元素。

这是我的签名 z95函数(允许将整数转换为这个整数模 95)
z95 n = Z95(n %% 95)
z95 18 = 18%95

我试着做一个双 map也访问了我的 Matrix 的元素,但后来我不知道如何应用我的 z95功能。

谢谢你的帮助!

最佳答案

你可以定义一个 Functor类型的实例,这是将函数映射到容器元素的常用方法。

instance Functor Matrice where
fmap f (Mat xss) = Mat (map (map f) xss)

现在你可以写
>> let m = Mat [[1,2,3],[4,5,6]]
>> fmap (+3) m -- => Mat [[4,5,6],[7,8,9]]

或者在你的情况下
>> fmap z95 m

关于haskell - 将函数应用于矩阵的每个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20901672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com