emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Babel woes


From: Thomas S. Dye
Subject: Re: [O] Babel woes
Date: Wed, 17 Aug 2011 07:37:00 -1000

Aloha Andras,

Andras Major <address@hidden> writes:

> Hi everyone,
>
> I've been trying to use org-mode for report generation lately, and
> haven't really succeeded. Here's a list of issues I encounter:
>
> - Babel offers a way of generating a code block from the output or
>   value of a code block.  That new block, however, is forced to the
>   same language as the original block -- that is doesn't allow me, for
>   example, to use a Haskell block to create an asymptote figure which
>   then generates an image in the HTML or PDF export version.  Is there
>   a way around this limitation?

Perhaps you could chain code blocks?  Set your Haskell code block to
:results output and then pass it into the graphing function like this
example dot code block:

#+source: pst-to-fig
#+headers: :file pascals-triangle.pdf :cmdline -Tpdf
#+begin_src dot :var pst-vals=pst-to-dot :exports results
  graph {
    $pst-vals
  }
#+end_src

This is an example Eric Schulte developed.  The Haskell code block in
this instance would be pst-to-dot.

hth,
Tom

>
> - Ruby: is inf-ruby really required? Why can't I execute a ruby block
>   without it?
>
> - Haskell: there are at least two interpreters that babel will invoke,
>   depending on what is available (ghci and hugs), and those two are
>   incompatible in some areas (such as loading modules, where the
>   commands are different -- :add vs. :load). I haven't found a way of
>   + forcing the use of a specific interpreter;
>   + specifying command-line arguments to the interpreter (which would
>     eliminate the need for :add or :load).
>   This really makes using Haskell rather hit-and-miss, see below.
>
> - Haskell code usage is rather cumbersome: since Babel invokes an
>   interpreter rather than runghc, a Haskell block doesn't nearly have
>   the flexibility of a real Haskell program.  In particular, one can
>   only make definitions (portably) in the Haskell code by creating a
>   separate block which is tangled but not executed.  Another block,
>   which is executed, can then load the tangled module and use its
>   definitions (if it weren't for the problems described above and
>   below).
>
> - The handling of interpreted Haskell appears to be rather dodgy: If I
>   want to load a module (in ghci) and then evaluate some function,
>   then I run into real trouble.  None of my tests run at all when
>   first loaded into emacs, but if I execute some tests in a certain
>   order, it all starts working.  I haven't been able to figure out yet
>   what goes wrong and what "playing around" makes things work, but it
>   appears that
> #+begin_src haskell
>   :add SomeModule
>   someFunction
> #+end_src
>   will not work because the :add statement is ignored. If I put the
>   two lines in separate Haskell blocks and execute each one
>   separately, then things start to work.
>
> - I also tried using sbe to invoke a Haskell function from within a
>   table formula.  Here I usually get an error "ERROR - Undefined
>   variable "x"", which sometimes goes away rather magically (I'm not
>   sure what makes it go away), after which things work just fine.
>   Emacs-lisp blocks written in the same manner work out of the box.
>
> - Haskell uses a static type system, and there is no such thing as
>   automatic casting if a variable has the wrong type for a given
>   function.  Thus, if I evaluate the numbers of a table using Haskell
>   and sbe, and some values have a decimal dot and other (integer) ones
>   omit it, then one of these versions will throw an error.  Is there a
>   way of converting the values beforehand to a given type (say,
>   Double), only to make Haskell happy?
>
> Can anyone give me a hint of why these things don't work and whether
> I'm doing something wrong?
>
> Oh, I'm using emacs from Debian testing (23.2+1-7) and org from git
> (cloned today).
>
> Thanks,
>
>   AndrĂ¡s
>
>

-- 
Thomas S. Dye
http://www.tsdye.com



reply via email to

[Prev in Thread] Current Thread [Next in Thread]