TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Show HN: Bel

1288 点作者 pg超过 5 年前

75 条评论

cousin_it超过 5 年前
Whenever I see a new programming language, this list of questions by Frank Atanassow comes to mind:<p><pre><code> 1. What problem does this language solve? How can I make it precise? 2. How can I show it solves this problem? How can I make it precise? 3. Is there another solution? Do other languages solve this problem? How? What are the advantages of my solution? of their solution? What are the disadvantages of my solution? of their solution? 4. How can I show that my solution cannot be expressed in some other language? That is, what is the unique property of my language which is lacking in others which enables a solution? 5. What parts of my language are essential to that unique property? </code></pre> Do read the whole post (<a href="http:&#x2F;&#x2F;lambda-the-ultimate.org&#x2F;node&#x2F;687#comment-18074" rel="nofollow">http:&#x2F;&#x2F;lambda-the-ultimate.org&#x2F;node&#x2F;687#comment-18074</a>), it has lots of elaboration on these questions.<p>From a skim of the Bel materials, I couldn&#x27;t answer these questions. Maybe PG or someone else can take a stab at the answer?
评论 #21232352 未加载
评论 #21231947 未加载
评论 #21243804 未加载
评论 #21237289 未加载
评论 #21241710 未加载
评论 #21253995 未加载
评论 #21237396 未加载
评论 #21231977 未加载
rntz超过 5 年前
&gt; 5. (where x)<p>&gt; Evaluates x. If its value comes from a pair, returns a list of that pair and either a or d depending on whether the value is stored in the car or cdr. Signals an error if the value of x doesn&#x27;t come from a pair.<p>&gt; For example, if x is (a b c), &gt; &gt; &gt; (where (cdr x)) &gt; ((a b c) d)<p>That is one zany form.<p>1. How is this implemented?<p>2. What is the use of this?<p>3. What does (where x) do if x is both the car of one pair and the cdr of another, eg. let a be &#x27;foo, define x to be (join a &#x27;bar), let y be (join &#x27;baz a), and run (where a).
评论 #21231628 未加载
dfranke超过 5 年前
Reproduced from feedback that I gave pg on an earlier draft (omitting things he seems to have addressed):<p>When you say,<p>&gt; But I also believe it will be possible to write efficient implementations based on Bel, by adding restrictions.<p>I&#x27;m having trouble picturing what such restrictions would look like. The difficulty here is that, although you speak of axioms, this is not really an axiomatic specification; it&#x27;s an operational one, and you&#x27;ve provided primitives that permit a great deal of introspection into that operation. For example, you&#x27;ve defined closures as lists with a particular form, and from your definition of the basic operations on lists it follows that the programmer can introspect into them as such, even at runtime. You can&#x27;t provide any implementation of closures more efficient than the one you&#x27;ve given without violating your spec, because doing so would change the result of calling car and cdr on closure objects. To change this would not be a mere matter of &quot;adding restrictions&quot;; it would be taking a sledgehammer to a substantial piece of your edifice and replacing it with something new. If closures were their own kind of object and had their own functions for introspection, then a restriction could be that those functions are unavailable at runtime and can be only be used from macros. But there&#x27;s no sane way to restrict cdr.<p>A true axiomatic specification would deliberately leave such internals undefined. Closures aren&#x27;t necessarily lists, they&#x27;re just values that can be applied to other values and behave the same as any other closure that&#x27;s equivalent up to alpha, beta, and eta conversion. Natural numbers aren&#x27;t necessarily lists, they&#x27;re just values that obey the Peano axioms. The axioms are silent on what happens if you try to take the cdr of one, so that&#x27;s left to the implementation to pick something that can be implemented efficiently.<p>Another benefit of specifying things in this style is that you get much greater concision than any executable specification can possible give you, without any loss of rigor. Suppose you want to include matrix operations in your standard library. Instead of having to put an implementation of matrix inversion into your spec, you could just write that for all x,<p><pre><code> (or (not (is-square-matrix x)) (singular x) (= (* x (inv x)) (id-matrix (dim x)))) </code></pre> Which presuming you&#x27;ve already specified the constituent functions is every bit as rigorous as giving an implementation. And although you can&#x27;t automate turning this into something executable (you can straightforwardly specify a halting oracle this way), you <i>can</i> automate turning this into an executable fuzz test that generates a bunch of random matrices and ensures that the specification holds.<p>If you do stick with an operational spec, it would help to actually give a formal small-step semantics, because without a running implementation to try, some of the prose concerning the primitives and special forms leaves your intent unclear. I&#x27;m specifically puzzling over the `where` form, because you haven&#x27;t explained what you mean by what pair a value comes from or why that pair or its location within it should be unique. What should<p><pre><code> (where &#x27;#1(#1 . #1)) </code></pre> evaluate to? Without understanding this I don&#x27;t really understand the macro system.
评论 #21235577 未加载
评论 #21234027 未加载
评论 #21255881 未加载
waterhouse超过 5 年前
A couple of things on my checklist for mathematical purity are (a) first-class macros and (b) hardcoded builtins. It looks like Bel does have first-class macros. As for (b)...<p>&gt; Some atoms evaluate to themselves. All characters and streams do, along with the symbols nil, t, o, and apply. All other symbols are variable names<p>The definitions of &quot;ev&quot; and &quot;literal&quot; establish that nil, t, o, and apply are in fact hardcoded and unchangeable. Did you consider having them be variables too, which just happen to be self-bound (or bound to distinctive objects)? nil is a bit of a special case because it&#x27;s also the end of a list, and &quot;(let nil 3 5)&quot; implicitly ends with &quot; . nil&quot;; o might be an issue too (said Tom <i>arguably</i>); but apply and t seem like they could be plain variables.<p>P.S. It looks like you did in fact implement a full numerical tower—complex numbers, made of two signed rational numbers, each made of a sign and a nonnegative rational number, each made of two nonnegative integers, each of which is a list of zero or more t&#x27;s. Nicely done.
lewisjoe超过 5 年前
Welcome back PG!<p>HN: How do you get an intuitionistic understanding of computation itself? While Turing Machines kind of make sense in the context of algorithms, can I really intuitively understand how lambda calculus is equivalent to Turing machines. Or how Lambda Calculus can solve algorithms? What resources helped understanding these concepts?<p>I&#x27;m currently following <a href="http:&#x2F;&#x2F;index-of.co.uk&#x2F;Theory-of-Computation&#x2F;Charles_Petzold-Annotated_Turing-Wiley(2008).pdf" rel="nofollow">http:&#x2F;&#x2F;index-of.co.uk&#x2F;Theory-of-Computation&#x2F;Charles_Petzold-...</a> and a bunch of other resources in the hope I&#x27;ll &quot;get&quot; them eventually.
评论 #21231692 未加载
评论 #21232312 未加载
评论 #21245695 未加载
alexkcd超过 5 年前
I really like how type checking is implemented for parameter lists. I think there&#x27;s a more generalized extension of this.<p>Specifically, I think that there exists a lisp with a set of axioms that split program execution into &quot;compile-time&quot; execution (facts known about the program that are invariant to input) and a second &quot;runtime&quot; execution pass (facts that depend on dynamic input).<p>For example, multiplying a 2d array that&#x27;s defined to be MxN by an array that&#x27;s defined to be NxO should yield a type that&#x27;s known to be MxO (even if the values of the array are not yet known). Or if the first parameter is known to be an upper-triangular matrix, then we can optimize the multiplication operation by culling the multiplication AST at &quot;compile-time&quot;. This compile-time optimized AST could then be lowered to machine code and executed by inputting &quot;runtime&quot; known facts.<p>I think that this is what&#x27;s needed to create the most optimally efficient &quot;compiled&quot; language. Type systems in e.g. Haskell and Rust help with optimization when spitting out machine code, but they&#x27;re often incomplete (e.g., we know more at compile time than what&#x27;s often captured in the type system).<p>I&#x27;ve put &quot;compilation&quot; in quotes, because compilation here just means program execution with run-time invariant values in order to build an AST that can then be executed with run-time dependent values. Is anyone aware of a language that takes this approach?
评论 #21237225 未加载
评论 #21239748 未加载
评论 #21240961 未加载
Zenst超过 5 年前
Short direct intro, link to guide for language, here is a link to code examples. This is for me are the things I look for when reading about some new computer language release upon here or anywhere and this just wins upon that first impression. It&#x27;s kinda like the early days of quality usenet posts nostalgia in the direct and to the point aspect, and I love that.
SkyMarshal超过 5 年前
<i>&gt;Bel is an attempt to answer the question: what happens if, instead of switching from the formal to the implementation phase as soon as possible, you try to delay that switch for as long as possible? If you keep using the axiomatic approach till you have something close to a complete programming language, what axioms do you need, and what does the resulting language look like?</i><p>I really like this approach and have wondered in recent years what a programming language designed with this approach would look like. There are a few that come close, probably including Haskell and some of the more obscure functional languages and theorem prover languages. Will be really interesting to see a Lisp developed under this objective.<p><i>&gt;But I also believe that it will be possible to write efficient implementations based on Bel, by adding restrictions. If you want a language with expressive power, clarity, and efficiency, it may work better to start with expressive power and clarity, and then add restrictions, than to approach from another direction.</i><p>I also think this notion of restrictions, or constraint-driven development (CDD), is an important concept. PG outlines two types of restrictions above. The first is simply choosing power and clarity over efficiency in the formative stages of the language and all the tradeoffs that go with that. The second is adding additional restrictions later once it&#x27;s more clear how the language should be structured and should function, and then restricting some of that functionality in order to achieve efficiency.<p>Reminds of the essay &quot;Out of the Tarpit&quot; [1] and controlling complexity in software systems. I believe a constraints-based approach at the language level is one of the most effective ways of managing software complexity.<p>[1]:<a href="https:&#x2F;&#x2F;github.com&#x2F;papers-we-love&#x2F;papers-we-love&#x2F;blob&#x2F;master&#x2F;design&#x2F;out-of-the-tar-pit.pdf" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;papers-we-love&#x2F;papers-we-love&#x2F;blob&#x2F;master...</a>
TekMol超过 5 年前
<p><pre><code> Bel has four fundamental data types: symbols, pairs, characters, and streams. </code></pre> No numbers?<p>Then a bit further down it says:<p><pre><code> (+ 1 2) returns 3 </code></pre> Now suddenly there are numbers.<p>What am I missing?
评论 #21234649 未加载
评论 #21234304 未加载
评论 #21234590 未加载
评论 #21237036 未加载
brudgers超过 5 年前
I&#x27;ve only read the first twenty pages approximately. I&#x27;d like to see a little more disentangling of characters and strings as inputs to automata from text as something people read. The narrow technical meaning is implied in the text, but the use of &quot;string&quot; as a synonym for &quot;text&quot; is common enough that it might be worth being a little more explicit or didactic or pedantic or whatever.<p>The second thought is that lists smell like a type of stream. Successive calls to `next` on `rest` don&#x27;t necessarily discern between lists and streams. The difference seems to be a compile time assertion that a list is a finite stream. Or in other words, a sufficiently long list is indistinguishable from an infinite stream (or generator).<p>I&#x27;m not sure you can have a lisp without lists, but they seem more like objects of type stream that are particularly useful when representing computer programs than a fundamental type. Whether there are really two fundamental types of sequences, depends on how platonic <i>really</i> really is.<p>All with the caveat, that I&#x27;m not smart enough to know if the halting problem makes a terminating type fundamental.
p4bl0超过 5 年前
It&#x27;s strange that the description of the language [0] starts using numbers without introducing them at first and then far later in the file says that they are implemented as literals. I didn&#x27;t get to see the source code yet (I&#x27;m on mobile and have to randomly tap the text of the linked article to find links…), but I don&#x27;t understand the point of this nor if it&#x27;s just a semantic choice or actually implemented that way (I don&#x27;t see how).<p>[0] <a href="https:&#x2F;&#x2F;sep.yimg.com&#x2F;ty&#x2F;cdn&#x2F;paulgraham&#x2F;bellanguage.txt?t=1570864570&amp;" rel="nofollow">https:&#x2F;&#x2F;sep.yimg.com&#x2F;ty&#x2F;cdn&#x2F;paulgraham&#x2F;bellanguage.txt?t=157...</a>
stereolambda超过 5 年前
I like the (English) syntax of the article. It seems to have the same concise feeling as the language itself. I like to think that&#x27;s why pg chooses falsity over falsehood.<p>It&#x27;s a little strange to have (id &#x27;a) return nil. Also having car and cdr as historical holdouts when most of the naming seems to aim at an ahistorical stylistic.<p>Not very deep remarks, since I would need more time to digest.
galfarragem超过 5 年前
Genuine questions that probably most here want to put but seem to be afraid of:<p>Why Bel? What are the problems that Bel wants to solve? Is this an hobby project or something more serious?
评论 #21231836 未加载
评论 #21231976 未加载
评论 #21232670 未加载
评论 #21231733 未加载
dangrossman超过 5 年前
Welcome back to Hacker News
评论 #21231288 未加载
评论 #21231413 未加载
drcode超过 5 年前
I think at the end of the day, the question is whether a compiler for this type of language could efficiently handle a function like distinct-sorted:<p><pre><code> &gt; (distinct-sorted &#x27;(foo bar foo baz)) (bar baz foo) </code></pre> This is a function that usually requires efficient hash tables and arrays to be performant, a hash table for detecting the duplicates, an array for efficient sorting. However, both the hash map and array could theoretically be &quot;optimized away&quot;, since they are not exposed as part of the output.<p>A language like Bel that does not have native hash maps or arrays and instead uses association lists would have to rely entirely on the compiler to find and perform these optimizations to be considered a usable tool.
评论 #21235681 未加载
cperciva超过 5 年前
Is there a version of Bel written in some other language? If not, how do you get started without a bootstrap?
评论 #21231326 未加载
评论 #21232719 未加载
PostOnce超过 5 年前
It amuses and pleases me to see that pg will continue to play around with lisp presumably forever, regardless of how wealthy he becomes.<p>I hope I&#x27;ll never stop coding passion projects myself.<p>John Carmack talked about this on Joe Rogan&#x27;s show recently, about how he still codes and how Elon Musk would like to do more engineering but hasn&#x27;t much time.<p>I wonder if Bill Gates ever codes anything anymore, I emailed to him ask once but never got a reply.<p>Tim Sweeney is a billionaire and still knee deep in code.<p>It&#x27;s Saturday night here, and I&#x27;m going to go write some code. Unproductive, unprofitable, beautiful game engine code.<p>Hope all you other hackers get up to something interesting this weekend.
评论 #21232985 未加载
评论 #21231730 未加载
评论 #21232144 未加载
评论 #21234762 未加载
评论 #21232383 未加载
评论 #21233403 未加载
评论 #21233650 未加载
评论 #21234708 未加载
评论 #21233816 未加载
评论 #21236327 未加载
评论 #21232988 未加载
评论 #21234050 未加载
评论 #21231645 未加载
评论 #21233090 未加载
arketyp超过 5 年前
How does this relate to Arc?
评论 #21231636 未加载
alfiedotwtf超过 5 年前
I remember reading pg&#x27;s article on Lisp and startups, and at the time questioned if it was just mere luck. Then having a cursory look at Lisp, I questioned its relevance to the modern world.<p>... fast forward a decade later and I&#x27;m reading books on functional and logical languages for work. After the first chapter of The Little Schemer, I was at first <i>blown away</i> with the content, but then sad after I realised I had put off reading it late in my life.<p>If you&#x27;re reading this comment and thinking Lisp and what&#x27;s the point? Take a deep dive. It you&#x27;re still questioning why, I highly encourage you to read The Little Schemer (and then all the others in the series). Scheme, Lisp, and now Bel, are a super power... pg&#x27;s article was spot on.
评论 #21231917 未加载
评论 #21234169 未加载
评论 #21232321 未加载
评论 #21232359 未加载
评论 #21235283 未加载
评论 #21233655 未加载
excessive超过 5 年前
This one seems backwards to me:<p><pre><code> (2 &#x27;(a b c)) </code></pre> In addition to being data structures, I like to think of lists&#x2F;arrays as functions which map integers to the contents. This nicely generalizes to hash tables &#x2F; associative arrays, and then further to actual functions. If that&#x27;s all reasonable, then<p><pre><code> (&#x27;(a b c) 2) </code></pre> is the right order for application.<p>However, maybe pg is just thinking of 2 as a shorthand for cadr or similar.
评论 #21239042 未加载
评论 #21238816 未加载
shpx超过 5 年前
If Bel doesn&#x27;t have irrational numbers, how do I use pi? Define a function that returns an approximation to a given precision?
评论 #21231436 未加载
评论 #21239429 未加载
pwpwp超过 5 年前
No fexprs? <a href="https:&#x2F;&#x2F;web.cs.wpi.edu&#x2F;~jshutt&#x2F;kernel.html" rel="nofollow">https:&#x2F;&#x2F;web.cs.wpi.edu&#x2F;~jshutt&#x2F;kernel.html</a>
mark_l_watson超过 5 年前
I like the syntax for function chaining: (dedup:sort &lt; &quot;abracadabra&quot;)<p>I assume that dedup and sort are separate functions.
imdhmd超过 5 年前
I am unable to understand the difference between (a b c) and (a b . c)
评论 #21231414 未加载
评论 #21233320 未加载
评论 #21231467 未加载
评论 #21231542 未加载
评论 #21232735 未加载
applecrazy超过 5 年前
I can&#x27;t say I&#x27;m familiar with Lisp (or its dialects).<p>How does one get started learning a Lisp variant (in terms of learning resources&#x2F;guides), and why use Lisp over other languages?
评论 #21233150 未加载
评论 #21233472 未加载
评论 #21233306 未加载
评论 #21231325 未加载
评论 #21232747 未加载
评论 #21239746 未加载
neya超过 5 年前
Welcome back Paul :) Great to hear from you again. I almost thought you were too busy for HN since you became less active here, it&#x27;s really nice to see you again!
ajju超过 5 年前
It’s great to see a technical post from pg after a while!
repolfx超过 5 年前
There&#x27;s a typecheck function in the standard library, but with no documentation in the Bel source anywhere it&#x27;s hard to know what it does.<p>For people like me who want static typing and a powerful type system to catch errors, does lisp have anything to offer? My understanding is that it predates decent type systems and lisps will always be genealogically much closer to Python than, say, a Haskell or even a Kotlin.
评论 #21239251 未加载
评论 #21235149 未加载
jmccarthy超过 5 年前
Open to sharing a bit about the name? No mention of it in the guide.
评论 #21231281 未加载
评论 #21231489 未加载
评论 #21232011 未加载
yellowapple超过 5 年前
At the risk of some bikeshedding:<p><pre><code> The name &quot;car&quot; is McCarthy&#x27;s. It&#x27;s a reference to the architecture of the first computer Lisp ran on. But though the name is a historical accident, it works so well in practice that there&#x27;s no reason to change it. </code></pre> While I understand the rationale here, would this not have been a good opportunity to encourage something a bit less vestigial than &quot;car&quot; and &quot;cdr&quot;? Say, &quot;head&quot; and &quot;tail&quot;? Or &quot;left&quot; and &quot;right&quot;? A lot of things come to mind when seeing a bunch of cars and cdrs and such everywhere in Lisp code, and &quot;works so well in practice&quot; ain&#x27;t exactly one of them, IMO.
评论 #21256727 未加载
评论 #21256857 未加载
shrubble超过 5 年前
Will someone please teach pg some APL? It seems to be the missing piece of what he is working towards.
评论 #21236190 未加载
daoudc超过 5 年前
I love the idea of trying to build a mathematically pure language. I wonder how far it is possible to use optimisation techniques to make Bel efficient. For example, can the representation of strings as pairs be automatically optimised to a sequence of characters?
评论 #21231747 未加载
评论 #21231651 未加载
segmondy超过 5 年前
Very nice for the depth and quality. This could pass for a very good grad school project. Pg, how much effort did it take to figure out the axiomatic approach for previous formal methods. How long and how much effort did it take to produce this?
eggsyntax超过 5 年前
There are two things I found confusing in the first part of the guide (ie the part up to &quot;Reading the Source&quot;). The first is &#x27;where&#x27;, which is addressed in another thread on this page. The second is this:<p><pre><code> This is a proper list: (a b c) and this is not: (a b . c) </code></pre> Could someone clarify how to interpret &#x27;(a b . c)&#x27;? How would it be represented in the non-abbreviated dot notation for pairs? It&#x27;s not &#x27;(a . (b . (c . nil))&#x27; -- is it &#x27;((a . b) . c)&#x27;? The only Lisp I&#x27;m fluent in is Clojure, so I&#x27;m not used to the dot notation; otherwise this might be obvious.
评论 #21301656 未加载
kizer超过 5 年前
O GLORY DAY OUR PAUL HATH RETURNED! Also is Lisp just syntactic sugar over Lambda calculus? All the Lisp people (I.e., the authors of books I’ve skimmed on lisp) worship it, but it’s simply an encoding of a n-ary tree, no? I know you can do elegant things like define lisp in lisp and the whole homoiconicity[?] thing - but don’t these endless opportunities stem from n-ary trees? My point is that of course Lisp can do this and that if it’s simply a representation of a tree - trees capture as models like all the structures of information.
orthoxerox超过 5 年前
Why does apply evaluate to itself instead of (lit prim apply)?
评论 #21232291 未加载
mrburton超过 5 年前
PG is still alive and coding! :)
vessenes超过 5 年前
Paul, this is really nice - I’m glad to see you doing some research about stuff you clearly love.<p>Other than because you want to, do you have any sort of longer form apology for bel worked out that you want to share?<p>I ask because I’m curious how you’re thinking about play, work and legacy at this point in your career.
评论 #21234736 未加载
ericd超过 5 年前
I haven&#x27;t had a chance to dig in yet, just wanted to say congrats on getting it out into the world!
quickthrower2超过 5 年前
Seems a bit closer to the lambda calculus than most lisps. Building stuff up from such primitive types.
gdubs超过 5 年前
Aside: Nice to see you hear again, pg.
iamwil超过 5 年前
As for the name, I figured it has a couple connotations.<p>AT&amp;T&#x27;s Bell labs.<p>Belle is French for Beautiful<p>Bel is the 7th ASCII character and it use to ring an electro mechanical bell in computers, before they had speakers or sound cards.<p>B is the second letter after A, with which Arc, his first Lisp variant was named.<p>And both have three letters.
评论 #21234339 未加载
QueensGambit超过 5 年前
This seems like a DSL masking itself as a programming language. Will this axiomatic approach allow declaration of domain specific operators like credit&#x2F;debit? Is this is an attempt to make application development axiomatic?
est31超过 5 年前
The source is hosted on the yahoo CDN. Interesting.
评论 #21233761 未加载
e12e超过 5 年前
So, how does one bootstrap the interpreter?<p>Is it available as a Racket &quot;language&quot; or is it compatible with most&#x2F;some lisps&#x2F;schemes?
juskrey超过 5 年前
Have you considered posting this on HN under some pseudonym (including original website etc) to make experiment more .. interesting?
idm超过 5 年前
Hi Paul - looks interesting!<p>What is the license? My presumption is that you intentionally did not embed a license within either of the documents.
fao_超过 5 年前
&gt; (dedup:sort &lt; &quot;abracadabra&quot;) &quot;abcdr&quot;<p>I extremely like this format. I think clojure has something similar?
jxub超过 5 年前
Hyped to have you back in here pg :)
machawinka超过 5 年前
There is not mention of licensing anywhere. Is it freely distributable&#x2F;modifiable?
Liron超过 5 年前
How&#x27;d you pick the name?
z3phyr超过 5 年前
I can&#x27;t find the definition of id in bel.bel file. Did I miss it? @pg
rayalez超过 5 年前
Wow! So cool to see a new post from PG!<p>Really curious to see what this project will become.
varjag超过 5 年前
Is &#x27;sys&#x27; really necessary, when you already have streams?
dfischer超过 5 年前
Just when I was curious on learning some Lisp. I was also saddened how much it&#x27;s dropping on <a href="https:&#x2F;&#x2F;www.tiobe.com&#x2F;tiobe-index&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.tiobe.com&#x2F;tiobe-index&#x2F;</a>
评论 #21231454 未加载
SudoNhim超过 5 年前
Exciting! This has a lot in common with Nock&#x2F;Hoon
georgeEsb超过 5 年前
Being so simple reminds me of RISC
machawinka超过 5 年前
Wonder why `no` instead of `not`.
评论 #21234693 未加载
netcan超过 5 年前
Welcome back pg.<p>I hope it was a pleasant return.
codr7超过 5 年前
I just don&#x27;t think yet another Lisp is going to do it, and I&#x27;ve written a few [0].<p>Lisp is fine for what it is, one extreme of the spectrum and a child of its time; but far from the final answer to anything.<p>We would be better off triangulating new ideas than polishing our crufty icons. Lisp was a giant leap, hopefully not the last.<p>[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;codr7&#x2F;g-fu" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;codr7&#x2F;g-fu</a>
评论 #21233492 未加载
m0zg超过 5 年前
Wish I could have Lisp without all the parentheses. Parentheses just sour the experience for me.
评论 #21232980 未加载
评论 #21231400 未加载
评论 #21231391 未加载
评论 #21231978 未加载
评论 #21232883 未加载
评论 #21231531 未加载
评论 #21231388 未加载
评论 #21231809 未加载
评论 #21231407 未加载
评论 #21233417 未加载
评论 #21234249 未加载
robobro超过 5 年前
How do I install this?
vincent-toups超过 5 年前
Seems goofy, but ok. I&#x27;ll just use Scheme.
intricatedetail超过 5 年前
Bit Edgy Language? Nice work!
dang超过 5 年前
Some users are reporting that the links don&#x27;t show up on some mobile browsers. Pending a fix, here they are. (Edit: fixed now.)<p>The way Lisp began <a href="http:&#x2F;&#x2F;paulgraham.com&#x2F;rootsoflisp.html" rel="nofollow">http:&#x2F;&#x2F;paulgraham.com&#x2F;rootsoflisp.html</a><p>A guide to the Bel language <a href="https:&#x2F;&#x2F;sep.yimg.com&#x2F;ty&#x2F;cdn&#x2F;paulgraham&#x2F;bellanguage.txt?t=1570864329&amp;" rel="nofollow">https:&#x2F;&#x2F;sep.yimg.com&#x2F;ty&#x2F;cdn&#x2F;paulgraham&#x2F;bellanguage.txt?t=157...</a><p>The Bel source <a href="https:&#x2F;&#x2F;sep.yimg.com&#x2F;ty&#x2F;cdn&#x2F;paulgraham&#x2F;bel.bel?t=1570864329&amp;" rel="nofollow">https:&#x2F;&#x2F;sep.yimg.com&#x2F;ty&#x2F;cdn&#x2F;paulgraham&#x2F;bel.bel?t=1570864329&amp;</a><p>Some code examples <a href="https:&#x2F;&#x2F;sep.yimg.com&#x2F;ty&#x2F;cdn&#x2F;paulgraham&#x2F;belexamples.txt?t=1570864329&amp;" rel="nofollow">https:&#x2F;&#x2F;sep.yimg.com&#x2F;ty&#x2F;cdn&#x2F;paulgraham&#x2F;belexamples.txt?t=157...</a>
markhowe超过 5 年前
There’s no link styling, at least on mobile Safari, they’re kind of essential to understand the article.<p>...sorry to be that guy.
评论 #21231348 未加载
评论 #21231336 未加载
lostmsu超过 5 年前
On mobile Firefox links are indistinguishable from regular text.<p>Workaround is to view full site (link at the bottom)
评论 #21231429 未加载
joak超过 5 年前
I do not see any text file...<p>Must be hidden somewhere or not showing in my browser (firefox android with ad blockers)
评论 #21231416 未加载
评论 #21231420 未加载
评论 #21231396 未加载
kingofpee超过 5 年前
I&#x27;m shocked it&#x27;s the first post of Paul since 2014<p>I feel lucky now to be online ;)
1penny42cents超过 5 年前
@pg: hyperlinks aren&#x27;t visible on mobile web
foobar_超过 5 年前
Almost every language has macros now. Lisp is pointless.
评论 #21231996 未加载
评论 #21232247 未加载
whazor超过 5 年前
Welcome back pg. You should check out Jetbrains MPS, they are doing cool stuff with projectional editing. Which could mean no more brackets. I read via Twitter that they recently announced MPS for Web in Amsterdam yesterday, unfortunately I missed the conference because of my home situation :). Luckily they filmed the presentations so I will be waiting for them on YouTube.
wintorez超过 5 年前
I have a hunch that this is going to become a big deal in the future. Not sure why.
adreamingsoul超过 5 年前
Instead of writing code on the weekend, I instead have been thinking about and visualizing the code that I would like to write. That way I can use my hands for other activities, like playing in the dirt.
Geee超过 5 年前
paulgraham.com isn&#x27;t secured by HTTPS. The reason why sites like this should be secured is content manipulation attacks. Now I can&#x27;t trust that the Bel source code that I see is actually written by pg.
评论 #21232666 未加载