LISP community
!lisp@lemmy.ml
help-circle
rss





















The key features of Carp are the following: Automatic and deterministic memory management (no garbage collector or VM) Inferred static types for great speed and reliability Ownership tracking enables a functional programming style while still using mutation of cache-friendly data structures under the hood No hidden performance penalties – allocation and copying are explicit Straightforward integration with existing C code Lisp macros, compile time scripting and a helpful REPL
fedilink






cross-posted from: https://lemmygrad.ml/post/403778 > This has some pretty interesting computational chemistry material in it.
fedilink









How to quickly and easily make an efficient and extensible typesetter (in Common Lisp).
I got bored and wanted to write a paper (and then abandon it); but I dislike all these complex typesetter programs. I made one in Common Lisp: ```lisp (defun parse-text (elm writer-mode) "Converts a high-level text list into string usable for a platform (like terminals). The element can be a string or a list of a text-function along with the parameters. If the element is a string, return the string. If the element is a list; retrieve the CAR's writers property. `writers` is a property list of functions that are assigned to symbols that note a function to write string output for a specific environment. The function selected is based on `writer-mode`." (cond ((stringp elm) elm) ((listp elm) (apply (getf (getf (eval (car elm)) 'writers) writer-mode) (cdr elm))) (t t) ) ) ``` and... that's it. This is how to make an effective typesetter. It's efficient and extensible. I spent under 20 minutes on that function. here are some text-functions to add bold, italics, and underlines for terminals. These are property lists which store information about the text-function and the functions to return strings for each writer-mode. ```lisp (setq bold `(documentation "Formats text in bold." writers (terminal ,(lambda (&rest strings) (apply #'concatenate (append '(string "") strings (list ""))) )))) (setq italic `(documentation "Formats text in italic." writers (terminal ,(lambda (&rest strings) (apply #'concatenate (append '(string "") strings (list ""))) )))) (setq underline `(documentation "Formats text in underline." writers (terminal ,(lambda (&rest strings) (apply #'concatenate (append '(string "") strings (list ""))) ))) ) ``` ## Example Usage The input consists of a list or string so: ```lisp (dolist (text `("Lorem ipsum dat..." (underline "The bouregoisie will crumble!") (bold "The proletariat shall rise!"))) (format *standard-output* (parse-text text 'terminal)) ) ``` The output will be: Lorem ipsum dat...^[The bouregoisie will crumble!\^[^[The proletariat shall rise!^[ --- I spent more time on failing to make a macro and the documentation than I spent on the actual design. lol
fedilink

Первые реализации языка Lisp в СССР [The first implementations of the Lisp language in the USSR]
[English translation of the website (through Yandex translate)](https://translated.turbopages.org/proxy_u/ru-en.en.beba808f-62f7cd3f-7fa6f570-74722d776562/https/www.computer-museum.ru/histsoft/lisp_sorucom_2011.htm)
fedilink



LISP community
!lisp@lemmy.ml
    Create a post

    A community for the Lisp family of programming languages.

    Lisp (historically LISP) is a family of programming languages with a long history and a distinctive, fully parenthesized prefix notation. Originally specified in 1958, Lisp is the second-oldest high-level programming language. Only Fortran is older, by one year.

    History

    Associations and meetings

    Resources - TODO

    Related communities (dialects) - TODO

    • 0 users online
    • 1 user / day
    • 1 user / week
    • 4 users / month
    • 8 users / 6 months
    • 5 subscribers
    • 46 Posts
    • 14 Comments
    • Modlog
    Lemmy
    A community of privacy and FOSS enthusiasts, run by Lemmy’s developers

    What is Lemmy.ml

    Rules

    1. No bigotry - including racism, sexism, ableism, homophobia, transphobia, or xenophobia. Code of Conduct.
    2. Be respectful. Everyone should feel welcome here.
    3. No porn.
    4. No Ads / Spamming.

    Feel free to ask questions over in: