Discussion
Loading...

#Tag

  • About
  • Code of conduct
  • Privacy
  • Users
  • Instances
  • About Bonfire
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp 4 days ago

Learn Prolog Now

https://lpn.swi-prolog.org/lpnpage.php?pageid=top

#HackerNews #LearnProlog #Now #Prolog #Programming #Education #Coding #Skills #HackerNews

Learn Prolog Now!

  • Copy link
  • Flag this post
  • Block
Raúl Chouza boosted
thezerobit
@thezerobit@anticapitalist.party  ·  activity timestamp 4 months ago

If you feel any #ImposterSyndrome as a programmer about calling yourself an "engineer", just start writing your backend server software in #Erlang. Yes, you'll have to learn #Prolog syntax. Yes, you'll have to learn how to do fully functional programming with only immutable data structures. Yes, it is fully asynchronous and designed for reliability and fault tolerance. Yes, it is highly dynamic and can do things like update running software remotely with new code with zero downtime.

  • Copy link
  • Flag this post
  • Block
thezerobit
@thezerobit@anticapitalist.party  ·  activity timestamp 4 months ago

If you feel any #ImposterSyndrome as a programmer about calling yourself an "engineer", just start writing your backend server software in #Erlang. Yes, you'll have to learn #Prolog syntax. Yes, you'll have to learn how to do fully functional programming with only immutable data structures. Yes, it is fully asynchronous and designed for reliability and fault tolerance. Yes, it is highly dynamic and can do things like update running software remotely with new code with zero downtime.

  • Copy link
  • Flag this post
  • Block
Christine Lemmer-Webber and 1 other boosted
Nils M Holm
@AverageDog@mastodon.social  ·  activity timestamp 5 months ago

The Mini #CommonLISP I have been working on now runs on CP/M with 2416 free cons cells. Enough to load Ken Kahn's tiny PROLOG and run a few simple queries.
The #AgonLight (18MHz eZ80) loads the LISP part of the code (236 lines) in 11 seconds. Simple programs run at acceptable speed, but slightly more complex PROLOG queries take minutes. 😊
#LISP#CPM#PROLOG#Z80

MICRO COMMON LISP 01
2416 NODES

* (maplist #'reverse '(1 2 3 4 5))
((5 4321) (5432) (543) (54) (5))

* (do ((a '(hello beautiful lisp world) (cdr a)))
    ((null a) (terpri))
    (prin (car a)))

HELLO BEAUTIFUL LISP WORLD
T

* (defmacro kwote (x) *',x)
KWOTE

* (kwote (foo bar))
(FOO BAR)

* (load 'prolog)
T

* (defparameter *db*
    '(((man socrates))
     ((mortal (\\ x)) (man (\\ x)))))

* (prolog *db* '(mortal (\\ who)))

WHO = SOCRATES
NIL
MICRO COMMON LISP 01 2416 NODES * (maplist #'reverse '(1 2 3 4 5)) ((5 4321) (5432) (543) (54) (5)) * (do ((a '(hello beautiful lisp world) (cdr a))) ((null a) (terpri)) (prin (car a))) HELLO BEAUTIFUL LISP WORLD T * (defmacro kwote (x) *',x) KWOTE * (kwote (foo bar)) (FOO BAR) * (load 'prolog) T * (defparameter *db* '(((man socrates)) ((mortal (\\ x)) (man (\\ x))))) * (prolog *db* '(mortal (\\ who))) WHO = SOCRATES NIL
MICRO COMMON LISP 01 2416 NODES * (maplist #'reverse '(1 2 3 4 5)) ((5 4321) (5432) (543) (54) (5)) * (do ((a '(hello beautiful lisp world) (cdr a))) ((null a) (terpri)) (prin (car a))) HELLO BEAUTIFUL LISP WORLD T * (defmacro kwote (x) *',x) KWOTE * (kwote (foo bar)) (FOO BAR) * (load 'prolog) T * (defparameter *db* '(((man socrates)) ((mortal (\\ x)) (man (\\ x))))) * (prolog *db* '(mortal (\\ who))) WHO = SOCRATES NIL
  • Copy link
  • Flag this post
  • Block
Nils M Holm
@AverageDog@mastodon.social  ·  activity timestamp 5 months ago

The Mini #CommonLISP I have been working on now runs on CP/M with 2416 free cons cells. Enough to load Ken Kahn's tiny PROLOG and run a few simple queries.
The #AgonLight (18MHz eZ80) loads the LISP part of the code (236 lines) in 11 seconds. Simple programs run at acceptable speed, but slightly more complex PROLOG queries take minutes. 😊
#LISP#CPM#PROLOG#Z80

MICRO COMMON LISP 01
2416 NODES

* (maplist #'reverse '(1 2 3 4 5))
((5 4321) (5432) (543) (54) (5))

* (do ((a '(hello beautiful lisp world) (cdr a)))
    ((null a) (terpri))
    (prin (car a)))

HELLO BEAUTIFUL LISP WORLD
T

* (defmacro kwote (x) *',x)
KWOTE

* (kwote (foo bar))
(FOO BAR)

* (load 'prolog)
T

* (defparameter *db*
    '(((man socrates))
     ((mortal (\\ x)) (man (\\ x)))))

* (prolog *db* '(mortal (\\ who)))

WHO = SOCRATES
NIL
MICRO COMMON LISP 01 2416 NODES * (maplist #'reverse '(1 2 3 4 5)) ((5 4321) (5432) (543) (54) (5)) * (do ((a '(hello beautiful lisp world) (cdr a))) ((null a) (terpri)) (prin (car a))) HELLO BEAUTIFUL LISP WORLD T * (defmacro kwote (x) *',x) KWOTE * (kwote (foo bar)) (FOO BAR) * (load 'prolog) T * (defparameter *db* '(((man socrates)) ((mortal (\\ x)) (man (\\ x))))) * (prolog *db* '(mortal (\\ who))) WHO = SOCRATES NIL
MICRO COMMON LISP 01 2416 NODES * (maplist #'reverse '(1 2 3 4 5)) ((5 4321) (5432) (543) (54) (5)) * (do ((a '(hello beautiful lisp world) (cdr a))) ((null a) (terpri)) (prin (car a))) HELLO BEAUTIFUL LISP WORLD T * (defmacro kwote (x) *',x) KWOTE * (kwote (foo bar)) (FOO BAR) * (load 'prolog) T * (defparameter *db* '(((man socrates)) ((mortal (\\ x)) (man (\\ x))))) * (prolog *db* '(mortal (\\ who))) WHO = SOCRATES NIL
  • Copy link
  • Flag this post
  • Block
Log in

bonfire.cafe

A space for Bonfire maintainers and contributors to communicate

bonfire.cafe: About · Code of conduct · Privacy · Users · Instances
Bonfire social · 1.0.0 no JS en
Automatic federation enabled
  • Explore
  • About
  • Members
  • Code of Conduct
Home
Login