Czy istnieje dobry sposób na napisanie pseudokodu?

11

Chciałbym naszkicować jakiś pseudokod, a następnie udostępnić go innym osobom, które nie będą używać emacsa.

Czy jest na to dobry sposób? Próbuję to zrobić w trybie org, ale nie jest to właściwe wcięcie itp.

theQman
źródło
Ktoś napisał tryb pseudokodu , ale od tego momentu oferuje tylko podświetlanie składni, bez wcięć.
dsedivec

Odpowiedzi:

4

Nie znam trybu pseudokodu, tym bardziej obsługa tego trybu w trybie org.

Możesz jednak pisać pseudo-kod w #+BEGIN_EXAMPLEblokach, z pewnością bez wcięć, lub zdecydować się na prawdziwy język jako podstawową składnię i pseudo-kod, i uzyskać wcięcia i ładne podświetlanie składni. Ruby może być dobrym kandydatem lub dobrym starym C / C ++, może Java ...

Tak mogłoby to wyglądać:

#+HEADER: :exports both :results output
#+BEGIN_SRC ruby
class Pseudoclass
  def pseudofunction(items)
    add five to each item
  end
end

pseudoinstance = new Pseudoclass instance
call pseudofunction of pseudoinstance with list 2, 3, 4
#+END_SRC
theldoria
źródło
0

Jeśli akceptujesz udostępnianie swojego pseudokodu w formacie LaTeX lub PDF, możesz użyć tego pakietu minteddo połączenia teletypu i dobrze wciętego wyrażenia z wyrażeniem matematycznym LaTeX. Oto przykład dobrze znanego algorytmu Prim:

#+begin_export latex
\begin{minted}[escapeinside=||,mathescape=true]{text}
Prim's Algorithm(|$V, s$|)
|$T = \varnothing$|
|$U = \{ s \}$|
while (|$U \neq V$|)
    let |$(u, v)$| be the lowest cost edge in the cut |$(U, V-U)$|
    |$T = T \cup \{(u, v)\}$|
    |$U = U \cup \{v\}$|
\end{minted}
#+end_export

który jest renderowany jako wprowadź opis zdjęcia tutaj

Jeśli chcesz udostępniać tylko ten fragment kodu pseudokodu, musisz tylko wybrać ten blok i wywołać org-latex-export-as-latexlub w org-latex-export-to-pdfzależności od formatu, który chcesz wyeksportować (możesz nieco zmodyfikować opcje trybu organizacji, aby uzyskać zadowalający układ). Aby łatwo napisać pseudokod, możesz oczywiście zmienić mintedseparator wyrażeń matematycznych i użyć yasnippetniestandardowego bloku lateksu, aby pozbyć się tych wielu opcji.

Firmin Martin
źródło