在我国,有两种货币,里亚尔和托曼,可以相互转换(1 two = 10里亚尔),我想为每种货币创建一个特定的类型,即不可转让的货币。我不想失去任何性能(例如,使用对象而不是数字)
示例代码:
type toman = number
type rial = number
function x(r: rial): void {
console.log(r)
}
const t: toman = 5
x(t) // I want to get an error here, because toman is unassignable to rial
select t.customer_type, t.balance_no
from test12 t
where t.customer_type=&a1 and t.currency=
(case when &a2 in t.currency then &a2
else 'ALL'
end);
我从用户那里获取客户类型的数字和货币的字符串,并返回当前行。如果用户输入的货币在表中不可用,则应返回货币值为“all”的行。如果用户输入的货币存在于表中,则需要返回与其对应的行。但在我的代码里,它不是那样工作的。如果用户输入的货币存在于表中,则
嘿,所以我在阅读关于类型驱动开发的。我在摸索Java类型时遇到了困难,所以我尝试用Haskell编写它。不过,我有两个问题:
我不知道如何实现货币和实际货币之间的区别。起初,我认为货币只是货币的类型(我认为这是合理的),就像这个data Dollar = Dollar Double,像Dollar 4.0这样的值是货币,而Dollar是货币。我认为Dollar :: Double -> Dollar是不出口的东西。
这就导致了一个问题,那就是我无法为一家可以兑换货币的银行建模。我在想一些类似exchange :: (Money a, Money b) =>[Exchange
我在一个需要长和双倍格式为货币的应用程序上工作。我得到了正确的输出,数字出现在我的控制台中,但不是美元格式。我试过使用NumberFormat,但它不起作用,可能是我把它放错了地方。下面是我的代码:
import java.text.DateFormat;
import java.util.Date;
import java.text.NumberFormat;
private Date arrivalDate;
private Date departureDate;
private long elapsedDays;
private double TotalPrice;
pu
假设我有一种货币类型:
data Currency = USD | EUR | YEN
以及存储int的货币类型,并由给定的货币参数化(货币被提升为具有DataKinds扩展的货币类型)。
data Money :: Currency -> * where
Money :: Int -> Money c
是否可以编写一个函数moneyOf,该函数以货币值作为其参数,并返回货币值的对应类型所参数化的货币值?例如moneyOf :: Currency -> Money c,但是我们得到了编译时间保证c是从货币值生成的类型?
我有一张存放在桌子里的房间里的位置清单。他们大多叫A1,A2,.A16,B1,B2,B16,C1.
当查询此列表时,我将如何对结果进行排序,以便将字母与数字按顺序分组?
显然SELECT name FROM Shelves ORDER BY name不工作,因为它返回A1,A10,.A16,A2.
FROM Location ORDER BY LENGTH(name)也不起作用,因为A、B、C等不再分组。
编辑:
不是所有的位置名称都是一个字符后面跟着数字,也有安全1,安全2,安全3,货币1,货币2.(房间保险箱里的架子)。
A1等没有空格,但安全1,货币1和诸如此类。
我想要定义数据类型货币,它由三种其他数据类型组成。我的问题是,Haskell不承认数据类型是货币的一部分,这破坏了一切。
我的想法是将不同的货币定义为它们自己的数据类型,然后将它们添加到货币类型中,我尝试过这样做:
data Euro = MkEuro Integer Integer
data Dollar = MkDollar Integer Integer
data Yen = MkYen Integer
data Currency = Euro | Dollar | Yen
如果我想在任何函数中使用类型货币,就会得到以下错误消息的变体:
Couldn't match expect