4.3BSD/usr/contrib/icon/book/f/symmpy.icn

procedure mpy(arg1,arg2)
   return {
      (integer(arg1) * integer(arg2)) |
      (if (arg1 | arg2) == "0" then "0") |
      (if arg1 == arg2 then symop(arg2,"^","2")) |
      (if arg1 == "1" then arg2) |
      (if arg2 == "1" then arg1) |
      symop(arg1,"*",arg2)
      }
end