如何在SML中递归计数数字

时间:2018-08-13 14:42:29

标签: recursion functional-programming sml smlnj

我需要使用标准ML以递归的方式计算数字的位数,假设数字0的表示形式为1位数字。

fun digitCount 0 = 1
  | digitCount n = 1 + digitCount (n div 10)

如果countDigit(0)为0会很容易,但是在我编写的代码中,结果总是加1。

1 个答案:

答案 0 :(得分:4)

使用.mat-toolbar.mat-primary { background: #007bff; color: #fff; } 语句代替零值模式匹配怎么办?

if then else

与模式匹配a甚至可以写成一行相比,它并不冗长:

fun digitCount n =
  if n < 10
  then 1
  else 1 + digitCount (n div 10)