我已经定义了以下自定义单位(伪代码):
unix_days = unix_seconds/86400;
nasa_seconds = unix_seconds - 946728000;
这让我可以直接转换unix_seconds
为unix_days
或转换
unix_seconds
为nasa_seconds
.
但是,如果不编写另一个公式,我无法直接转换unix_days
回。unix_seconds
同样,如果不编写其他公式,我也无法转换nasa_seconds
为。unix_days
是否有一个聪明的 Perl 子例程或包可以让我在不编写额外函数的情况下做到这一点?更具体地说,一个自定义单位转换包:
可以算出单位换算函数的倒数。例如,它的反义词
f(x)=x/86400
是g(y)=y*86400
。可以根据需要应用传递性。例如,如果
unix_seconds = nasa_seconds + 946728000
(通过反函数)和unix_days = unix_seconds/86400
,我们可以将它们结合起来直接从 转换nasa_seconds
为unix_days
。
如果需要,我可以以不寻常的方式编写我的转换公式。例如,摄氏到华氏可以写成:
C to F: *1.8 +32
这种形式很容易倒转:只需倒过来和倒过来,即:
F to C: -32 /1.8
这样的事情存在吗?