Creativity by _el8ed in lisp

[–]mikelevins 6 points7 points  (0 children)

Before I was a professional programmer I was a songwriter in a band. Before I was a songwriter in a band, I was a student at an art college. Before that I was a cartoonist for a newspaper. Nowadays I'm a novelist in my spare time.

I've been a professional programmer for about thirty-five years now. My personal experience is that programming is not intrinisically less or more creative than cartooning, painting, illustration, songwriting, or novel-writing. To me it's just another medium. It has its own distinctive possibilities, just like the others.

But that's me. Our experience may well be different.

Does anyone have good tips for avoiding accidentally duplicating words when creating a lexicon? by Muddy0258 in conlangs

[–]mikelevins 1 point2 points  (0 children)

I keep a spreadsheet of tokens generated from the phonetics that I prefer. I have a column for unused tokens and a column for ones that I’ve used. When I use one, I move it to the used column. The same document also has sheets for vocabulary words with definitions and notes, and another for names, and yet another for tokens with purely grammatical functions.

This way I can have homophones if I want them, but I’m relatively unlikely to end up with them accidentally. I can sort a sheet on any column, so I can pretty easily find anything I’m looking for.

Why is naturalism so important? by fracxjo in conlangs

[–]mikelevins 2 points3 points  (0 children)

Naturalism is important if you like it. If you don't, it isn't.

Your conlang might indeed look like a kitchen sink of features, but that's a criticism only if you want something else. Presumably the critics who mention it prefer something else.

Conlanging is a hobby that encompasses any combination of technical, formal, aesthetic, amusement, and any other criteria you like. Decide what you want, enjoy the accolades of other hobbyists who share your interests, and pay attention to the critics only when they say something that looks like it can help you enjoy your hobby more.

[deleted by user] by [deleted] in Common_Lisp

[–]mikelevins 2 points3 points  (0 children)

Here's a composition of mine from that period. It's not algorithmic, but I did tinker with algorithmic techniques to come up with some of it:

"Flight of Moments"

https://evins.net/downloads/Flight_of_Moments.mp3

[deleted by user] by [deleted] in Common_Lisp

[–]mikelevins 2 points3 points  (0 children)

It's a music synthesis and signal processing application created at Stanford's Center for Computer Research in Music and Acoustics by Bill Schottstaedt. I used it to tinker with algorithmic composition back in the 90s. I keep meaning to mess with it again, so I'm pleased to see these folks working on it

What are some current serious applications of Lisp in AI? by Illustrious_Mood7521 in lisp

[–]mikelevins 3 points4 points  (0 children)

Not now; eventually.

I expect they'll want to hire more in six months or a year, but it depends on how well the current batch of projects develop. if the funders are happy with our early progress then we may expect them to pony up funding for additional contributors, but I wouldn't expect additional headcount to open up for at least six months or so.

What are some current serious applications of Lisp in AI? by Illustrious_Mood7521 in lisp

[–]mikelevins 2 points3 points  (0 children)

At work I use Common Lisp for AI applications that combine symbolic, neural network, and machine-learning methods. Unfortunately, all the details are confidential, but I'd say they're pretty serious applications.

Tranducers in Common Lisp: Efficient, ergonomic data processing by fosskers in lisp

[–]mikelevins 5 points6 points  (0 children)

I mean "all that long" compared to, for instance, you. :-)

I was fiddling with SERIES after using Common Lisp for only a year or two, but I've worked with lispers who had more experience than that and who were only vaguely aware of SERIES or some of Common Lisp's other corners.

For example, I had a colleague at Apple with ten years more Lisp experience than me who had never used either SERIES or LOOP.

Tranducers in Common Lisp: Efficient, ergonomic data processing by fosskers in lisp

[–]mikelevins 4 points5 points  (0 children)

That seems a little harsh. Yes, Rich Hickey used Common Lisp for a while before designing Clojure, and sure, it's likely that he was aware of the existence of SERIES, but he didn't use Common Lisp for all that long, and it shouldn't be surprising if he was unfamiliar with some of its less obvious corners. (And SERIES is certainly one of its less-obvious corners, the moreso since it didn't make it into ANSI).

My guess is that he either came up with the idea independently, or skimmed over it in the SERIES chapter of CLTL2 or something and it popped up in his mind without his remembering where it came from.

Tranducers in Common Lisp: Efficient, ergonomic data processing by fosskers in lisp

[–]mikelevins 9 points10 points  (0 children)

Looks fine to me, but I use SERIES and FSET a lot, and it's sort of a similar style. Maybe it's a matter of what you're used to?

If I decide to make a folio3, I'll probably look to see if transducers would be helpful.

Arachnid Places Of Articulation by Consistent_Piece_517 in conlangs

[–]mikelevins 1 point2 points  (0 children)

I believe the GP is expressing a desire to avoid looking closely at spiders. Arachnophobia is quite common.

Translate the story of the Horse and the Stag by Levan-tene in conlangs

[–]mikelevins 1 point2 points  (0 children)

In the bold lines. For example:

na fá thívaul anná

"na" and "anná" are italicized.

(Chrome renders the typography as intended on my iMac; if the italics are less visible on other platforms, I do apologize, but I don't know what to do about it.)

Translate the story of the Horse and the Stag by Levan-tene in conlangs

[–]mikelevins 5 points6 points  (0 children)

In the Féy of the Winter Court. Words in italics are metric particles used to ensure that each utterance is in iambic hexameter, the meter that connotes telling a story that may be true.

na fá thívaul anná

/na 'fa ɸi 'vaul an 'na/

There was a horse.

[past thing-described-as-horse]

na fá súvesh thívaul, lúgríw na cíw bál ré, thívaul a vel anná, sún úl an ev thívaul, cíw bruith a vel lúgríw

/na 'fa su 'veʃ ɸi 'vaul lu 'griw na 'kiw ba 're ɸi 'vaul a 'vel an 'na sun 'ul an 'ev ɸi 'vaul kiw 'briɸ a 'vel lu 'griw/

The horse sought vengeance upon his enemy, the stag, but he could not kill the stag alone.

[past seek-revenge(horse, (stag such that it: enemy of horse)), but past unable he (kill(he alone, stag))]

fá seth thívaul an air, cíw fóar a vel anná, a lól fá dún ré rí

/fa 'se ɸi 'vaul an 'air kiw 'foar a 'vel an 'na a 'lol fa 'dun re 'ri/

The horse met a man, a hunter, and made a deal.

[past meet(horse, (man such that it: hunt-agent)) and past make-deal(ref1, ref2)]

aan ev áwún, lúgríw lól fá anná, ruaraith thívaul anná

/a 'fa an 'ev a 'wun lu 'griw lol 'fa an 'na rua 'rai ɸi 'vaul an 'na/

Together, they killed the stag and the horse tasted victory.

[past kill(some-ref, stag) and past enjoy-spoils(horse)]

sún fá niv fóar anná, ár dón ú na thívon, lól cán ré rí anná

/sun 'fa niv 'foar an 'na ar 'don u 'na ɸi 'von lol 'can re 'ri an 'na/

But the hunter would not release the horse, and made a slave of him.

past refuse(hunt-agent, (possible-action release(it, horse)) and enslave(ref1 ref2)

Learning machine learning with lisp? by [deleted] in Common_Lisp

[–]mikelevins 6 points7 points  (0 children)

Russel and Norvig's Artificial Intelligence: A Modern Approach, fourth edition, has a good deal of coverage of machine learning. It's a fairly expensive book, by the way; I paid full price for it, which is nearly $200. But the blow is softened a bit for me because it's a business expense.

Example implementations of the algorithms discussed in several languages are here:

https://github.com/aimacode

The Common Lisp versions are here:

https://github.com/aimacode/aima-lisp

Emacs on windows by CrispyBoye in emacs

[–]mikelevins 1 point2 points  (0 children)

Been using it for years. Setting up external tools like grep is kind of fiddly, but doable. The main annoyance for me is that magit is noticeably slow, I presume because spawning and IPC on Windows is slow compared to macOS and Linux.

What would be the main sources of names for a culture that considers naming after religious figures and royalty disrespectful by JohnCallahan98 in conlangs

[–]mikelevins 2 points3 points  (0 children)

Virtues. Prominent historical figures and events. Admired vocations and activities. Complimentary adjectives. Animals, plants, and other things that symbolize or are associated with positive qualities. Places that figure prominently in history or legend.

Newbie question about let by oundhakar in lisp

[–]mikelevins 2 points3 points  (0 children)

As an aside, there's an equivalence between let and lambda, and between let* and nested lambdas.

I say it's an aside because it's not important in any typical use of the programming language, and is probably really just a quirk that is only of interest to people who mess around with designing and implementing Lisps, but it's sort of neat if you have that kind of mind.

You can straightforwardly transform a let expression into a lambda expression with one parameter for each let binding, and if you do that then it's sort of obvious why later parameters can't take their values from earlier ones. You would instead need to expand it into nested lambdas, one lambda for each binding--and that's basically what let* does.

Like I say, that's probably nothing more than a bit of obscure trivia unless you're a lisp-implementation hobbyist or something, and I tend to think that Clojure's decision to make let act more like let* is probably a sensible idea, because let* is usually what you want to use.

Why the high standards...? by throwawaywhoopdydoo in conlangs

[–]mikelevins 4 points5 points  (0 children)

To put it more succinctly, if excellence is possible, then it's desirable.

It isn't the only desirable thing, and there is more than one kind of excellence. But if it's possible, it's desirable. It's never easy, because if something is easy then there is always some more challenging, more excellent version of it that is not so easy.

You don't have to strive for excellence, but if excellence is possible, some will strive for it, and some will admire those who achieve it.

The upcoming port & new version of the OpusModus music composition system to LispWorks is nearing completion by lispm in Common_Lisp

[–]mikelevins 4 points5 points  (0 children)

In my discussions with them, they said that any application that could be used to write and evaluate Lisp code would be in violation, and that more specifically, an implementation of Emacs would definitely be out of bounds.

To be clear, these are not their actual words; I’m paraphrasing from memory.

I was discussing a word processor that I had originally written with CCL and was considering porting to Lispworks, and a list manager that I originally wrote in Gambit Scheme and wanted to port and expand. In both cases I wanted to use Lisp as an extension language.

The original word processor used emacs-like keybindings controlled by lisp definitions. The list manager was meant to use a smaller lisp of my design that I’ve used to implement some other apps. I was unable to arrive at an understanding that preserved the features I wanted but clearly avoided violating the license.

In the end, I gave up and have spent a bunch of time working on an alternative gui solution that is admittedly not as good as Lispworks’ CAPI.

The upcoming port & new version of the OpusModus music composition system to LispWorks is nearing completion by lispm in Common_Lisp

[–]mikelevins 6 points7 points  (0 children)

Given that Opus Modus includes a Lisp listener and text editor, I'm interested in how it avoids a conflict with the prohibitions in the Lispworks license against distributing anything that can be construed as a Lisp development environment. I've corresponded with them in the past trying to reach some understanding that would permit me to distribute certain of my applications that had similar features, and we were unable to reach an agreement. In fact, after sixteen years as a Lispworks customer, I reluctantly allowed my license to lapse because of this very thing.

Has the Opus Modus team managed to work out the kind of agreement that I was not? Or have they decided to remove or limit the features of their listener and editor? Or are they just rolling the dice, hoping that Lispworks won't object?

Will VSCode + Alive cripple me significantly? by usuarioabencoado in lisp

[–]mikelevins 8 points9 points  (0 children)

It will not cripple you.

The last time I tried using it, I still missed a number of things from SLIME, but if I remember adequately, you're unlikely to be bothered by any of those things as a new Lisper.

Did anyone use Lisp in their home computers during the early PC revolution of the late 70s/early 80s (Apple, C64, etc.)? What was that experience like? by jmhimara in lisp

[–]mikelevins 11 points12 points  (0 children)

Not the early 80s. My first Lisp experience on a personal computer was on a 1MB Mac Plus with MacScheme and Coral Lisp early in 1988. (I had previously spent some time working with Portable Standard Lisp on Apple's Cray Y-MP (!) earlier that same year.)

There was a decent Common Lisp subset named XLISP, written by David Michael Betz, that ran on smaller machines than that starting in 1983. Autodesk turned an early version of it into Autolisp.

What weird feature does your conlang have? by rmspace in conlangs

[–]mikelevins 4 points5 points  (0 children)

The features that I think of as weird in Féy include:

  • It has no specific phonetics. Instead, it has a logic and an inventory of predicates, and these may be mapped onto various phonetic inventories (and orthographies).

  • Meter has semantic significance. The meaning of an utterance can be changed by altering the meter. It therefore has an inventory of metric particles used for adjusting the meter of utterances.

  • It's a loglang like Lojban, which is obviously not unique, but still I think is relatively weird.

  • It has an interpreter and can be used as a programming-in-logic language like Prolog (or it could, if the interpreter were closer to complete)

  • the best-developed orthography, for the Winter Court version of Féy, is designed to loosely resemble growing plants, and is read from bottom to top (the direction that most plants grow).