emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* refernce to call results
@ 2013-11-13 10:19 Andreas Leha
  2013-11-13 11:12 ` Sebastien Vauban
  2013-11-13 11:24 ` Sebastien Vauban
  0 siblings, 2 replies; 9+ messages in thread
From: Andreas Leha @ 2013-11-13 10:19 UTC (permalink / raw)
  To: emacs-orgmode

Hi all,

how do I reference the results of a #+call line?

Here are my unsuccessful attempts:

--8<---------------cut here---------------start------------->8---
* Test call results

#+name: curdir
#+begin_src sh
  echo "$PWD"
#+end_src

#+results: curdir
: /home/andreas/tmp/junk/2013/11


#+name: curdircall
#+call: curdir()

#+results: curdircall
: /home/andreas/tmp/junk/2013/11

#+begin_src sh :var test=curdircall
  echo "$test"
#+end_src

#+results:
: nil

#+begin_src sh :var test=curdircall()
  echo "$test"
#+end_src

#+results:
: nil

--8<---------------cut here---------------end--------------->8---


Regards,
Andreas

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: refernce to call results
  2013-11-13 10:19 refernce to call results Andreas Leha
@ 2013-11-13 11:12 ` Sebastien Vauban
  2013-11-13 11:33   ` Andreas Leha
  2013-11-13 11:24 ` Sebastien Vauban
  1 sibling, 1 reply; 9+ messages in thread
From: Sebastien Vauban @ 2013-11-13 11:12 UTC (permalink / raw)
  To: emacs-orgmode-mXXj517/zsQ

Andreas Leha wrote:
> how do I reference the results of a #+call line?
>
> Here are my unsuccessful attempts:
>
> * Test call results
>
> #+name: curdir
> #+begin_src sh
>   echo "$PWD"
> #+end_src
>
> #+results: curdir
> : /home/andreas/tmp/junk/2013/11
>
>
> #+name: curdircall
> #+call: curdir()
>
> #+results: curdircall
> : /home/andreas/tmp/junk/2013/11
>
> #+begin_src sh :var test=curdircall
>   echo "$test"
> #+end_src
>
> #+results:
> : nil

IIUC, #+CALL lines can't be named.

See http://orgmode.org/manual/Structure-of-code-blocks.html#Structure-of-code-blocks
 vs http://orgmode.org/manual/Evaluating-code-blocks.html#Evaluating-code-blocks.

Best regards,
  Seb

-- 
Sebastien Vauban

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: refernce to call results
  2013-11-13 10:19 refernce to call results Andreas Leha
  2013-11-13 11:12 ` Sebastien Vauban
@ 2013-11-13 11:24 ` Sebastien Vauban
  2013-11-13 11:45   ` Andreas Leha
  1 sibling, 1 reply; 9+ messages in thread
From: Sebastien Vauban @ 2013-11-13 11:24 UTC (permalink / raw)
  To: emacs-orgmode-mXXj517/zsQ

Andreas Leha wrote:
> how do I reference the results of a #+call line?
>
> Here are my unsuccessful attempts:
>
> * Test call results
>
> #+name: curdir
> #+begin_src sh
>   echo "$PWD"
> #+end_src
>
> #+results: curdir
> : /home/andreas/tmp/junk/2013/11
>
> [...]
>
> #+begin_src sh :var test=curdircall()
>   echo "$test"
> #+end_src
>
> #+results:
> : nil

Use the following:

#+begin_src sh :var test=curdir()
  echo "$test"
#+end_src

Best regards,
  Seb

-- 
Sebastien Vauban

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: refernce to call results
  2013-11-13 11:12 ` Sebastien Vauban
@ 2013-11-13 11:33   ` Andreas Leha
  0 siblings, 0 replies; 9+ messages in thread
From: Andreas Leha @ 2013-11-13 11:33 UTC (permalink / raw)
  To: emacs-orgmode

"Sebastien Vauban" <sva-news@mygooglest.com>
writes:

> Andreas Leha wrote:
>> how do I reference the results of a #+call line?
>>
>> Here are my unsuccessful attempts:
>>
>> * Test call results
>>
>> #+name: curdir
>> #+begin_src sh
>>   echo "$PWD"
>> #+end_src
>>
>> #+results: curdir
>> : /home/andreas/tmp/junk/2013/11
>>
>>
>> #+name: curdircall
>> #+call: curdir()
>>
>> #+results: curdircall
>> : /home/andreas/tmp/junk/2013/11
>>
>> #+begin_src sh :var test=curdircall
>>   echo "$test"
>> #+end_src
>>
>> #+results:
>> : nil
>
> IIUC, #+CALL lines can't be named.
>
> See http://orgmode.org/manual/Structure-of-code-blocks.html#Structure-of-code-blocks
>  vs http://orgmode.org/manual/Evaluating-code-blocks.html#Evaluating-code-blocks.
>
> Best regards,
>   Seb


Hi Sebastian,

they can be named now (see
http://thread.gmane.org/gmane.emacs.orgmode/73811/focus=74096).

Regards,
Andreas

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: refernce to call results
  2013-11-13 11:24 ` Sebastien Vauban
@ 2013-11-13 11:45   ` Andreas Leha
  2013-11-13 13:33     ` Sebastien Vauban
  0 siblings, 1 reply; 9+ messages in thread
From: Andreas Leha @ 2013-11-13 11:45 UTC (permalink / raw)
  To: emacs-orgmode

"Sebastien Vauban" <sva-news@mygooglest.com>
writes:

> Andreas Leha wrote:
>> how do I reference the results of a #+call line?
>>
>> Here are my unsuccessful attempts:
>>
>> * Test call results
>>
>> #+name: curdir
>> #+begin_src sh
>>   echo "$PWD"
>> #+end_src
>>
>> #+results: curdir
>> : /home/andreas/tmp/junk/2013/11
>>
>> [...]
>>
>> #+begin_src sh :var test=curdircall()
>>   echo "$test"
>> #+end_src
>>
>> #+results:
>> : nil
>
> Use the following:
>
> #+begin_src sh :var test=curdir()
>   echo "$test"
> #+end_src
>
> Best regards,
>   Seb


Hi Sebastien,

thanks for that.  I am aware of the workaround to use a full code block
instead.  But my question still stands.

I found out how to do it.  Rather simple and straight forward, blush...

For future reference here it is:
--8<---------------cut here---------------start------------->8---
#+name: curdir
#+begin_src sh
  echo "$PWD"
#+end_src

#+results: curdir
: /home/andreas/tmp/junk/2013/11


#+name: curdircall
#+call: curdir()

#+name: myname
#+results: curdircall
: /home/andreas/tmp/junk/2013/11



#+begin_src sh :var test=myname
  echo "$test"
#+end_src
--8<---------------cut here---------------end--------------->8---


Regards,
Andreas

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: refernce to call results
  2013-11-13 11:45   ` Andreas Leha
@ 2013-11-13 13:33     ` Sebastien Vauban
  2013-11-13 13:59       ` [feature request] " Andreas Leha
  0 siblings, 1 reply; 9+ messages in thread
From: Sebastien Vauban @ 2013-11-13 13:33 UTC (permalink / raw)
  To: emacs-orgmode-mXXj517/zsQ

Hi Andreas,

Andreas Leha wrote:
> "Sebastien Vauban" <sva-news-D0wtAvR13HarG/iDocfnWg@public.gmane.org> writes:
>> Andreas Leha wrote:
>>> how do I reference the results of a #+call line?
>>>
>>> Here are my unsuccessful attempts:
>>>
>>> * Test call results
>>>
>>> #+name: curdir
>>> #+begin_src sh
>>>   echo "$PWD"
>>> #+end_src
>>>
>>> #+results: curdir
>>> : /home/andreas/tmp/junk/2013/11
>>
>> Use the following:
>>
>> #+begin_src sh :var test=curdir()
>>   echo "$test"
>> #+end_src
>
> thanks for that.  I am aware of the workaround to use a full code block
> instead.  But my question still stands.

I don't understand what you mean: it's not a workaround, as you have to define
your block once. Then, you simply use its name, instead of naming a call line,
and using that name. You avoid one indirection, no?

> I found out how to do it.  Rather simple and straight forward, blush...
>
> For future reference here it is:
> #+name: curdir
> #+begin_src sh
>   echo "$PWD"
> #+end_src
>
> #+results: curdir
> : /home/andreas/tmp/junk/2013/11
>
> #+name: curdircall
> #+call: curdir()
>
> #+name: myname
> #+results: curdircall
> : /home/andreas/tmp/junk/2013/11
>
> #+begin_src sh :var test=myname
>   echo "$test"
> #+end_src

I don't know if that's the solution, or simply a feature which works for now.

I find this weird and unsound:

- For code blocks, the results' name (curdir) is the code block's name
  (curdir).

- For call lines, as you do above, you give another name to the results of a
  call line (myname) than the name of the call line itself (curdircall).

This is not appealing to me, and confusing at least.

Best regards,
  Seb

-- 
Sebastien Vauban

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [feature request] refernce to call results
  2013-11-13 13:33     ` Sebastien Vauban
@ 2013-11-13 13:59       ` Andreas Leha
  2013-11-13 18:45         ` Eric Schulte
  0 siblings, 1 reply; 9+ messages in thread
From: Andreas Leha @ 2013-11-13 13:59 UTC (permalink / raw)
  To: emacs-orgmode

Hi Sebastien,

"Sebastien Vauban" <sva-news@mygooglest.com>
writes:

> Hi Andreas,
>
> Andreas Leha wrote:
>> "Sebastien Vauban" <sva-news@mygooglest.com> writes:
>>> Andreas Leha wrote:
>>>> how do I reference the results of a #+call line?
>>>>
>>>> Here are my unsuccessful attempts:
>>>>
>>>> * Test call results
>>>>
>>>> #+name: curdir
>>>> #+begin_src sh
>>>>   echo "$PWD"
>>>> #+end_src
>>>>
>>>> #+results: curdir
>>>> : /home/andreas/tmp/junk/2013/11
>>>
>>> Use the following:
>>>
>>> #+begin_src sh :var test=curdir()
>>>   echo "$test"
>>> #+end_src
>>
>> thanks for that.  I am aware of the workaround to use a full code block
>> instead.  But my question still stands.
>
> I don't understand what you mean: it's not a workaround, as you have to define
> your block once. Then, you simply use its name, instead of naming a call line,
> and using that name. You avoid one indirection, no?
>

Sorry about the lame example.  Let's assume, the original
code block takes an argument.  I want
to 'get rid of' that argument, let's say to avoid typing.  So, I have to
name the result of calling that code block with a specific argument.
There has to be at least one level of indirection here?

IIUC, you propose to use a code block to provide that argument, and my
idea was to use a #+call line.  For me, a call line is the more natural
way to accomplish this.

>> I found out how to do it.  Rather simple and straight forward, blush...
>>
>> For future reference here it is:
>> #+name: curdir
>> #+begin_src sh
>>   echo "$PWD"
>> #+end_src
>>
>> #+results: curdir
>> : /home/andreas/tmp/junk/2013/11
>>
>> #+name: curdircall
>> #+call: curdir()
>>
>> #+name: myname
>> #+results: curdircall
>> : /home/andreas/tmp/junk/2013/11
>>
>> #+begin_src sh :var test=myname
>>   echo "$test"
>> #+end_src
>
> I don't know if that's the solution, or simply a feature which works for now.
>
> I find this weird and unsound:
>
> - For code blocks, the results' name (curdir) is the code block's name
>   (curdir).
>
> - For call lines, as you do above, you give another name to the results of a
>   call line (myname) than the name of the call line itself (curdircall).
>
> This is not appealing to me, and confusing at least.

I agree completely.  So my question boils down to this feature request:

Now, that #+call lines can be named, would it be possible to reference
the results the same way as for code blocks?

Regards,
Andreas

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [feature request] refernce to call results
  2013-11-13 13:59       ` [feature request] " Andreas Leha
@ 2013-11-13 18:45         ` Eric Schulte
  2013-11-13 20:08           ` Andreas Leha
  0 siblings, 1 reply; 9+ messages in thread
From: Eric Schulte @ 2013-11-13 18:45 UTC (permalink / raw)
  To: Andreas Leha; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 268 bytes --]

>
> I agree completely.  So my question boils down to this feature request:
>
> Now, that #+call lines can be named, would it be possible to reference
> the results the same way as for code blocks?
>

I just pushed up a commit which should make this possible.  E.g.,


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: call.org --]
[-- Type: text/x-org, Size: 320 bytes --]

* call by name

#+name: echo-input
#+begin_src sh :var input="original"
  echo "input=$input"
#+end_src

#+RESULTS: echo-input
: input=original

#+name: echo-new
#+call: echo-input("new")

#+RESULTS: echo-new
: input=new

#+begin_src sh :var input=echo-new()
  echo "this=$input"
#+end_src

#+RESULTS:
: this=input=new


[-- Attachment #3: Type: text/plain, Size: 70 bytes --]


Best,

-- 
Eric Schulte
https://cs.unm.edu/~eschulte
PGP: 0x614CA05D

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [feature request] refernce to call results
  2013-11-13 18:45         ` Eric Schulte
@ 2013-11-13 20:08           ` Andreas Leha
  0 siblings, 0 replies; 9+ messages in thread
From: Andreas Leha @ 2013-11-13 20:08 UTC (permalink / raw)
  To: emacs-orgmode

Hi Eric,

Eric Schulte <schulte.eric@gmail.com> writes:

>>
>> I agree completely.  So my question boils down to this feature request:
>>
>> Now, that #+call lines can be named, would it be possible to reference
>> the results the same way as for code blocks?
>>
>
> I just pushed up a commit which should make this possible.  E.g.,
>
> * call by name
>
> #+name: echo-input
> #+begin_src sh :var input="original"
>   echo "input=$input"
> #+end_src
>
> #+RESULTS: echo-input
> : input=original
> #+name: echo-new
> #+call: echo-input("new")
> #+RESULTS: echo-new
> : input=new
> #+begin_src sh :var input=echo-new()
>   echo "this=$input"
> #+end_src
>
> #+RESULTS:
> : this=input=new
>

thanks a lot!  I confirm that it works.  This was really fast!

Regards,
Andreas

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2013-11-13 20:08 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-11-13 10:19 refernce to call results Andreas Leha
2013-11-13 11:12 ` Sebastien Vauban
2013-11-13 11:33   ` Andreas Leha
2013-11-13 11:24 ` Sebastien Vauban
2013-11-13 11:45   ` Andreas Leha
2013-11-13 13:33     ` Sebastien Vauban
2013-11-13 13:59       ` [feature request] " Andreas Leha
2013-11-13 18:45         ` Eric Schulte
2013-11-13 20:08           ` Andreas Leha

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).