相关疑难解决方法(0)

在Ada中定义通用标量类型包

我想通过制作一个用于操作多项式的方法来测试编写Ada包的水域.可以为一大类代数结构定义多项式,因此为了反映这一点,我想使包通用,因此它可以与Floats,Integers或其他数字子类型一起使用.

我现在想说的是,我对Ada的类型系统如何工作或它的包系统如何工作知之甚少.网络上似乎缺乏良好的初学者Ada信息,因此我不得不从这篇不那么新手友好的Wikibooks文章中收集到我能够获得的智慧.

页面包含有关类型层次结构的一些信息.基于此,似乎我的Polynomial包的合理类型将是Scalar类型,因为显然是定义算术运算的类型.所以这就是我所尝试的polynomials.ads:

generic

    MAX_DEGREE : Positive;
    type Element is new Scalar;

package Polynomial is

    type Polynomial is Array (0 .. MAX_DEGREE) of Element;

end Polynomial;
Run Code Online (Sandbox Code Playgroud)

但是,这只是让我忘了"Scalar" is undefinedGNAT.

到目前为止,我真的只是半盲地感觉到了,我实际上并不知道这些东西是如何起作用的.如果我认为你认为需要澄清任何重大误解,请告诉我.可能最简单的方法是提供我可以学习的示例polynomial.adspolynomial.adb代码 - 就像多项式类型的定义(使用泛型max-degree和element类型)和一个简单的示例函数(如添加两个多项式),所以我可以看到如何通用功能工作.

PS:排序相关,有没有办法为用户定义的类型定义属性?

ada

3
推荐指数
2
解决办法
853
查看次数

标签 统计

ada ×1