Day, 23
myxach
25 October 2017, 08:28

Мать, моя женщина, в F#, кроме передачи функции в функций и передачи операторов - можно создавать функцию внутри функцию и возвращать новую функцию для того что бы с помощью карирование использовать эту функцию в будущем.

Ну и для интереса велосипед в виде умножение или сказ о том, что говнокодить можно везде

let rec (*) (number:int) (mulnumber:int)= //

if abs mulnumber > abs number then (mulnumber * number)

else if mulnumber >1 then number- (-number * (mulnumber-1))

else if mulnumber<1 then -(number * -mulnumber)

else if mulnumber = 1 then number

else 0

~~~

Тоже самое можно переписать как -

let rec (*) (number:int) (mulnumber:int)= //

  • match mulnumber with
  • | 1 -> number
  • | 0 -> 0
  • | mulnumber when abs mulnumber > abs number -> mulnumber*number
  • | mulnumber when mulnumber < 0 -> -(number * -mulnumber)
  • | mulnumber -> number- (-number * (mulnumber-1))
Like it? Share with friends!
Add comment
See in dairy
Goal

You can publish
your goal here

We can help you achieve it!

310 000

like-minded

tools

for an exciting achievement

Join us!
Sign up

Signup

Уже зарегистрированы?
Quick sign-up through social networks.
Sign in

Sign in.
Allowed.

Not registered yet?
 
Log in through social networks
Forgot your password?