nik*_*sfi 8 math programming-languages operators
我目前正在寻找一种编程语言来编写数学课.我知道周围有很多很多,但是因为我下学期要开始学习数学,所以我认为这可能是一个很好的方法.深入了解我所学到的知识.
谢谢你的回复.
顺便说一句:如果你想知道我想问的是什么:
"是否有强类型编程语言允许您定义新的运算符?"
ram*_*ion 19
就像EFraim所说,Haskell使这很容易:
% ghci
ghci> let a *-* b = (a*a) - (b*b)
ghci> :type (*-*)
(*-*) :: (Num a) => a -> a -> a
ghci> 4 *-* 3
7
ghci> 1.2 *-* 0.9
0.6299999999999999
ghci> (*-*) 5 3
16
ghci> :{
let gcd a b | a > b = gcd (a - b) b
| b > a = gcd a (b - a)
| otherwise = a
:}
ghci> :type gcd
gcd :: (Ord a, Num a) => a -> a -> a
ghci> gcd 3 6
3
ghci> gcd 12 11
1
ghci> 18 `gcd` 12
6
您可以使用中缀语法定义新的中缀运算符(仅符号).然后,您可以将它们用作中缀运算符,或将它们包含在parens中以将它们用作普通函数.
您还可以将常规函数(字母,数字,下划线和单引号)用作运算符,方法是将它们括在反引号中.