2013-05-13 24 views
10

Có cách nào để thực thi mã trong tệp .lhs và đặt kết quả ngay bên dưới chính mã đó trong tệp PDF kết quả không?Đặt kết quả của mã ngay bên dưới mã trong kết quả PDF. Haskell

Ví dụ:

[1,2,3] ++ [4,5,6] 
[1,2,3,4,5,6] 
+0

Bạn có nghĩa là tự động đánh giá các biểu thức không khai báo và dán kết quả ngược lại vào mã nguồn trước khi nó được chuyển thành một pdf, giống như Mathematica không? – AndrewC

+0

Có, một cái gì đó như thế. Nó cho thấy một ví dụ về cách một hàm hoạt động, và tôi muốn được thực hiện nếu có ai đó chạy mã và cũng được hiển thị nếu có ai đó xem PDF – Jcao02

+0

Chắc chắn, bạn sẽ cần kiểm soát nhiều hơn về những gì sẽ được xuất hoặc bạn sẽ không sử dụng bất kỳ định nghĩa không thể in nào? Tại sao không sử dụng ví dụ: ['HaTeX'] (http://hackage.haskell.org/package/HaTeX), có lẽ cùng với [một quasi-quoter phù hợp] (http://www.haskell.org/pipermail/haskell-cafe/2008- Tháng 10/049244.html) để tránh trùng lặp mã. – leftaroundabout

Trả lời

11

Nếu bạn đang sử dụng LaTeX, bạn có thể sử dụng lhs2TeX. Đây là một tài liệu ví dụ đơn giản:

\documentclass{article} 

%include polycode.fmt 
%options ghci 

\begin{document} 

< [1,2,3] ++ [4,5,6] 

This evaluates to \eval{[1,2,3] ++ [4,5,6]}. 

> x = [1 .. 6] 

And this evaluates to \eval{x}, too. 

\end{document} 

Thao tác này sẽ chạy GHCi với tệp nguồn làm đầu vào ở chế độ nền. Do đó, bạn có thể đánh giá các biểu thức bằng cách sử dụng \eval trong ngữ cảnh của mô-đun Haskell hiện hành (literate Haskell), và kết quả của chúng sẽ được ghép vào các nguồn .tex kết quả.

Các vấn đề liên quan