Unexpected result in the evaluation of a function
I hope my question isn't stupid. Why does the following code result in 1 and not 3?
var('a b')
f(a, b) = gcd(a, b)
f(3, 6)
I hope my question isn't stupid. Why does the following code result in 1 and not 3?
var('a b')
f(a, b) = gcd(a, b)
f(3, 6)
Your question is very much valid. This notation to define a function (which is specific to Sage, and which creates a kind of function object) sadly does not seem to behave well except in the simplest cases. This is a bug.
I recommend not using this function notation. Instead, for one-line functions try (as in Python):
f = lambda a, b: gcd(a, b)
and for more complicated ones:
def f(a, b):
# possibly more statements here
return gcd(a, b)
By the way, the result you got probably stems from the following:
sage: var('a b')
(a, b)
sage: gcd(a, b)
1
Please start posting anonymously - your entry will be published after you log in or create a new account.
Asked: 2018-12-30 15:50:53 +0100
Seen: 254 times
Last updated: Dec 30 '18