- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题
我想描述化学工程中将某些物质转化为其他物质的过程。是否存在描述消耗“物质”的态射的类别?
我想要建模的例子
举几个例子:
将两种物质结合成混合物的转化混合物。
将物质煮沸成一些副产品的转化煮沸。
根据预定义的比例将一种物质分离用于 2 个不同过程的转化拆分。
等等……
不是函数
如您所见,每个化学过程不仅仅是一个函数,因为它的目标不是“计算”一个值,而是将一定数量的某些物质转化为其他物质。
也许是一个类别?
这让我想到了概括函数概念的类别。
类类别猫在哪里-- |恒等态射id::猫 a a
-- | morphism composition
(.) :: cat b c -> cat a b -> cat a c
从概念上讲,这是可行的,因为化学过程正是以这种方式可组合的。
更具体的类别
我知道有更具体的类别实例可以编码更多抽象(例如,笛卡尔类别)。笛卡尔类别介绍产品:
instance PreCartesian Hask (,) where
fst = Prelude.fst
snd = Prelude.snd
diag a = (a,a)
(f &&& g) a = (f a, g a)
-- alias
class (Monoidal k p i, PreCartesian k p) => Cartesian k p i | k -> p i
instance (Monoidal k p i, PreCartesian k p) => Cartesian k p i
但是,有一个问题。从概念上讲,笛卡尔范畴中的态射“计算”而不是“消费”它们的对象。从函数 diag a = (a, a) 可以看出它可以复制对象(这在化学工程中是不可能的)。
似乎大多数类别类型类都处理“计算”而不是“消费”。
消耗品类别?
是否有任何类别描述使用其对象的态射?我可以在 Haskell 或研究论文中寻找任何有用的实现吗?
线性逻辑
使用Curry-Howard,或许先找到一个等价的逻辑再映射到类别上会更容易一些。我偶然发现了似乎有帮助的线性逻辑:
最佳答案
这可能是 Linear Haskell 的一个很好的应用! GHC 9.0 及更新版本支持启用线性函数的 LinearHaskell
。
关于haskell - 寻找类别对象可部分消耗的类型类(化学工程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71211918/
这个问题已经有答案了: Is storing a delimited list in a database column really that bad? (10 个回答) 已关闭 3 年前。 我有一
我想创建一个在圆圈周围放置点的插画脚本。 假设给定了壳,但我需要一种方法在 n 大小的圆上均匀分布 n 个点(电子)。例如第一个圆上有 2 个点,第二个圆上有 8 个点,等等。 Here is an
我必须设计一个数据库来存储化学 react 的数据。我有 3 个实体:化学、 react 和条件。 我还设计了ER图。但它似乎并不完美。请指出以下ER图的缺陷和改进建议。 最佳答案 react 和条件
我正在实现一个基于线程的应用程序,我将连续连接到 Alfresco。我想避免 session 超时错误,所以想知道我应该以什么时间间隔清除 session 或创建新 session 。我可以继续与我进
我有一项从 Lotus Notes 连接到 SharePoint 2010 并上传 pdf 文档的服务。 我注意到,当运行约 14 000 个文档的较大作业时,每 5 - 10 分钟就会抛出一次“未经
我是一名优秀的程序员,十分优秀!