1 | initial version |

By using `f(x)=`

syntax, your are defining a Symbolic function of the symbolic variable `x`

. Then `floor(x)`

is a symbolic expression. And `mod`

just don't eat a symbolic expression as first argument.

```
sage: a = floor(x)
sage: type(a)
<type 'sage.symbolic.expression.Expression'>
sage: mod(a, 5) # raises value error
```

Use Python way of defining a function:

```
sage: def f(x): return mod(floor(x), 5)
sage: f(17.3)
2
```

See also Some Common Issues with Functions in the Sage Guided tour.

2 | No.2 Revision |

By using `f(x)=`

syntax, your are defining a Symbolic function of the symbolic variable `x`

. Then `floor(x)`

is a symbolic expression. And `mod`

just don't eat a symbolic expression as first argument.

```
sage: a = floor(x)
sage: type(a)
<type 'sage.symbolic.expression.Expression'>
sage: mod(a, 5) # raises
```~~value ~~type error

Use Python way of defining a function:

```
sage: def f(x): return mod(floor(x), 5)
sage: f(17.3)
2
```

See also Some Common Issues with Functions in the Sage Guided tour.

3 | No.3 Revision |

By using `f(x)=`

syntax, your are defining a Symbolic function of the symbolic variable `x`

. Then `floor(x)`

is a symbolic expression. And `mod`

just don't eat a symbolic expression as first argument.

```
sage: a = floor(x)
sage: type(a)
<type 'sage.symbolic.expression.Expression'>
sage: mod(a, 5) # raises type error
```

Use Python way of defining a function:

```
sage: def f(x): return mod(floor(x), 5)
sage: f(17.3)
2
```

See also this post or the section Some Common Issues with Functions in the Sage Guided tour.

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.