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中以将它们用作普通函数.
您还可以将常规函数(字母,数字,下划线和单引号)用作运算符,方法是将它们括在反引号中.