emacs-orgmode
[Top][All Lists]

## Re: [Orgmode] Problem with lisp code in spreadsheet

 From: Carsten Dominik Subject: Re: [Orgmode] Problem with lisp code in spreadsheet Date: Sun, 17 Jun 2007 11:56:24 +0200

```On Jun 17, 2007, at 8:22, Cecil Westerhof wrote:

```
```Op zo, 17-06-2007 te 00:14 +0200, schreef Carsten Dominik:
```
```In a row I have the following formula's:
=\$3
='(getHours \$2);%.2f
='(/ 67 0.72);%.1f
='(/ \$3 (getHours \$2));%.1f
This gives:
67
0.72
93.1
0.0

```
I would expect the last two to return the same number. Why is this not
```the case?

When I change the last formula to:
='(/ 67 (getHours \$2));%.1f
I get:
93.5

What is happening here?
```
```
Since I don't know exactly what getHours does, I cannot be sure.
The most likely reason though is that \$3 and \$2 are interpolated into
Lisp expressions as strings, not as numbers.
```
```
The tabel:
|--------+------+----+-----+------+----+------|
| Arnhem | 0:43 | 67 | 0.0 | 93.1 | 67 | 0.72 |
|--------+------+----+-----+------+----+------|
```
#+TBLFM: \$4='(/ \$3 (getHours \$2));N%.1f::\$5='(/ 67 0.72);%.1f::\$6=\$3::\$7='(getHours \$2);%.2f::
```
getHours:
(defun getHours(time)
(interactive "sHH:MM: ")
(let ((timelist (split-string time ":")))
(+
(string-to-number (car timelist))
(/
60.0
)
)
)
)

The strange thing is that \$3 is 67 and when I change \$3 to 67 it works.
```
```

What is going wrong is that you want \$2 to be interpreted as a string,
and \$3 as a number.  So you could leave off the N flag again and write
(string-to-number \$3)

Hmmm, maybe this is not completely satisfying now, maybe it would
```
be good to have replacements literally and then to write (getHours "\$2"), that
```might also be an option.

Needs more thinking.

- Carsten

```
```
Even changing the formul to:
='(/ (string-to-number \$3) (getHours \$2));N%.1f
does not work.

```
```See the discussion of the N mode flag in

```
http://staff.science.uva.nl/~dominik/Tools/org/org.html#Formula- syntax-
```for-Lisp
```
```
The problem is with \$3, so I would not know how to use that. :-{

--

_______________________________________________
Emacs-orgmode mailing list
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

```
```
--
Carsten Dominik
Sterrenkundig Instituut "Anton Pannekoek"
Universiteit van Amsterdam
Kruislaan 403
NL-1098SJ Amsterdam
phone: +31 20 525 7477

```