You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Haskell中从列表创建定长Vec的相关技术疑问

关于Haskell依赖类型向量的问题

1. 能否向withVec传入类id函数提取中间向量?

某博客实现了依赖类型向量Vec n a,并定义函数:

withVec :: [a] -> (forall n. Sing n -> Vec n a -> r) -> r

该函数可从列表生成中间向量并应用指定函数。目前发现,像sum :: Sing n -> Vec n Int -> Int这类返回普通类型的函数可以正常实现并传入,但尝试实现返回Vec n a类型的函数(类似id函数,用于提取中间向量)却始终失败,想知道是否可行。

2. 为何type-combinators包无编译时检查长度的fromList?

type-combinators包的Vec类型未提供从列表创建Vec n a的fromList函数。想确认是否根本无法实现编译时检查长度、从n长列表生成对应Vec n a的fromList?目前已实现运行时检查长度的版本,但希望获得编译时检查的实现。


内容的提问来源于stack exchange,提问作者Dragno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 22:39:59