algorism 계산

x <- 7
y <- 5
x + y 
# 식으로 표현하기
cat(x,"+",y,"=",x+y)

plus <- function(x,y){
  return (x+y);
}
plus(3,8)

plus <- function(x,y){
  return (cat(x,"+",y,"=",x+y));
}
plus(3,8)

minus <- function(x,y){
  return (x-y);
}
minus(3,8)

multi <- function(x,y){
  return  (cat(x,"*", y, "=", x*y));
}
multi(3,8)

div.float <- function(x,y){
  return (cat(x,"/", y, "=", x/y));
}
div.float(8,3)

div.integer <- function(x,y){
  return (cat(x,"%/%", y, "=", x%/%y));
}
div.integer(8,3)

div.remainder <- function(x,y){
  return (cat(x,"%%", y, "=", x%%y));
}
div.remainder(8,3)


## 계산기
x <- 3
op <- "+"
y <-  2

if(op=="+") plus(x,y) else
if(op=="-") minus(x,y) else
if(op=="*") multi(x,y) else
if(op=="/") div.float(x,y) else
if(op=="%/%") div.integer(x,y) else
if(op=="%%") div.remainder(x,y) else
print("error")

calc <-  function(x,op,y){
  if(op=="+") plus(x,y) else
  if(op=="-") minus(x,y) else
  if(op=="*") multi(x,y) else
  if(op=="/") div.float(x,y) else
  if(op=="%/%") div.integer(x,y) else
  if(op=="%%") div.remainder(x,y) else
  print("error")
}

calc(1,"+",2)
calc(2,">",4)

# data 종류: count (이산형), countless (연속형)
calc2 <-  function(x,op,y){
  switch(
    op,
    "+"=plus(x,y),
    "-"=minus(x,y),
    "*"=multi(x,y),
    "/"=div.float(x,y),
    "%/%"=div.integer(x,y), 
    "%%"=div.remainder(x,y)
  )
}

calc2(5,"*",6)
 
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KYWxnb3Jpc20g6rOE7IKwDQoNCmBgYHtyfQ0KeCA8LSA3DQp5IDwtIDUNCnggKyB5IA0KIyDsi53snLzroZwg7ZGc7ZiE7ZWY6riwDQpjYXQoeCwiKyIseSwiPSIseCt5KQ0KDQpwbHVzIDwtIGZ1bmN0aW9uKHgseSl7DQogIHJldHVybiAoeCt5KTsNCn0NCnBsdXMoMyw4KQ0KDQpwbHVzIDwtIGZ1bmN0aW9uKHgseSl7DQogIHJldHVybiAoY2F0KHgsIisiLHksIj0iLHgreSkpOw0KfQ0KcGx1cygzLDgpDQoNCm1pbnVzIDwtIGZ1bmN0aW9uKHgseSl7DQogIHJldHVybiAoeC15KTsNCn0NCm1pbnVzKDMsOCkNCg0KbXVsdGkgPC0gZnVuY3Rpb24oeCx5KXsNCiAgcmV0dXJuICAoY2F0KHgsIioiLCB5LCAiPSIsIHgqeSkpOw0KfQ0KbXVsdGkoMyw4KQ0KDQpkaXYuZmxvYXQgPC0gZnVuY3Rpb24oeCx5KXsNCiAgcmV0dXJuIChjYXQoeCwiLyIsIHksICI9IiwgeC95KSk7DQp9DQpkaXYuZmxvYXQoOCwzKQ0KDQpkaXYuaW50ZWdlciA8LSBmdW5jdGlvbih4LHkpew0KICByZXR1cm4gKGNhdCh4LCIlLyUiLCB5LCAiPSIsIHglLyV5KSk7DQp9DQpkaXYuaW50ZWdlcig4LDMpDQoNCmRpdi5yZW1haW5kZXIgPC0gZnVuY3Rpb24oeCx5KXsNCiAgcmV0dXJuIChjYXQoeCwiJSUiLCB5LCAiPSIsIHglJXkpKTsNCn0NCmRpdi5yZW1haW5kZXIoOCwzKQ0KDQoNCiMjIOqzhOyCsOq4sA0KeCA8LSAzDQpvcCA8LSAiKyINCnkgPC0gIDINCg0KaWYob3A9PSIrIikgcGx1cyh4LHkpIGVsc2UNCmlmKG9wPT0iLSIpIG1pbnVzKHgseSkgZWxzZQ0KaWYob3A9PSIqIikgbXVsdGkoeCx5KSBlbHNlDQppZihvcD09Ii8iKSBkaXYuZmxvYXQoeCx5KSBlbHNlDQppZihvcD09IiUvJSIpIGRpdi5pbnRlZ2VyKHgseSkgZWxzZQ0KaWYob3A9PSIlJSIpIGRpdi5yZW1haW5kZXIoeCx5KSBlbHNlDQpwcmludCgiZXJyb3IiKQ0KDQpjYWxjIDwtICBmdW5jdGlvbih4LG9wLHkpew0KICBpZihvcD09IisiKSBwbHVzKHgseSkgZWxzZQ0KICBpZihvcD09Ii0iKSBtaW51cyh4LHkpIGVsc2UNCiAgaWYob3A9PSIqIikgbXVsdGkoeCx5KSBlbHNlDQogIGlmKG9wPT0iLyIpIGRpdi5mbG9hdCh4LHkpIGVsc2UNCiAgaWYob3A9PSIlLyUiKSBkaXYuaW50ZWdlcih4LHkpIGVsc2UNCiAgaWYob3A9PSIlJSIpIGRpdi5yZW1haW5kZXIoeCx5KSBlbHNlDQogIHByaW50KCJlcnJvciIpDQp9DQoNCmNhbGMoMSwiKyIsMikNCmNhbGMoMiwiPiIsNCkNCg0KIyBkYXRhIOyiheulmDogY291bnQgKOydtOyCsO2YlSksIGNvdW50bGVzcyAo7Jew7IaN7ZiVKQ0KY2FsYzIgPC0gIGZ1bmN0aW9uKHgsb3AseSl7DQogIHN3aXRjaCgNCiAgICBvcCwNCiAgICAiKyI9cGx1cyh4LHkpLA0KICAgICItIj1taW51cyh4LHkpLA0KICAgICIqIj1tdWx0aSh4LHkpLA0KICAgICIvIj1kaXYuZmxvYXQoeCx5KSwNCiAgICAiJS8lIj1kaXYuaW50ZWdlcih4LHkpLCANCiAgICAiJSUiPWRpdi5yZW1haW5kZXIoeCx5KQ0KICApDQp9DQoNCmNhbGMyKDUsIioiLDYpDQogDQpgYGANCg0K