Programming thread

  • 🐕 I am attempting to get the site runnning as fast as possible. If you are experiencing slow page load times, please report it.
Transformers, and the RNNs they replaced, have a fundamental input and output unit of token sequences. When you give an LLM JSON as input, it's not """interpreting""" it as an AST or something with depth and structure, it's interpreting it as a sequence of tokens. This sounds pedantic but it effectively erases much of the built in structure of the data. Imagine if instead of handing you a math as a graph, I gave it to you as a list of nodes with linkages.
No, it's not pedantic at all. I don't know much at all about transformers in this context but RNNs go back to I think the late 80s and, as they have "recurrent" right in the name, they've been used to model the recursive nature of human language. Isn't there meaningful recursion there at least?
Complexity isn't always a good thing.
Sorry, your comment after this was interesting and I wonder if machine learning could be used in breaking things down like you mentioned, but when I said "complexity" I meant like doing better than quadratic worst case time. As in, could we do O(n log n) or better?
When I used copilot, I used the 5 second rule. If it took me more than 5 seconds to understand something it wanted to add, I wouldn't add it. For stuff like GPT, I only ask it concept questions, and I often obfuscate details or ask it to generate in a different language or even pseudocode.
Good heuristic. Neovim can integrate Copilot but I refuse to use it. (Neovim with LazyVim probably has too much as is.)

I remember asking ChatGPT to implement a benchmark MNIST digit classifier in QBASIC. It failed the Turing test by not telling me to eat shit and die but surprisingly blocked out a sensible bunch of heavily commented subroutines.
 
AI has improved to a staggering degree and not only because of hardware speedups. LLMs can be very frustrating and wrong but they became mostly coherent over multiple paragraphs in a few short years (even if claiming cucked bullshit like how DeepSeek says China is not harvesting organs from its minorities). Anyone can install the free and open source chess engine Stockfish that plays a far better game than any human on very modest consumer hardware, whereas when Deep Blue beat Garry Kasparov, it required a supercomputer.
most of these are just very good at very specific things, so i think we've mainly gotten a lot better at making computers good at specific things
stockfish is just as good as deep blue at playing different board games than chess (it can't unless you almost completely rewrite it from scratch)

we have a bunch of incredibly sharp and powerful tools now but they are almost as brittle and overspecialized as the dull stones our ancestors wielded
No, it's not pedantic at all. I don't know much at all about transformers in this context but RNNs go back to I think the late 80s and, as they have "recurrent" right in the name, they've been used to model the recursive nature of human language. Isn't there meaningful recursion there at least?
the "recursion" there is referring to an iterative form of recursion where the neural network replaces its state every word, rather than the typical version of "recursive" where you'd think it would create new frames to work in that mimic the fractal structure of the world around us
I remember asking ChatGPT to implement a benchmark MNIST digit classifier in QBASIC. It failed the Turing test by not telling me to eat shit and die but surprisingly blocked out a sensible bunch of heavily commented subroutines.
how close did it get
 
No, it's not pedantic at all. I don't know much at all about transformers in this context but RNNs go back to I think the late 80s and, as they have "recurrent" right in the name, they've been used to model the recursive nature of human language. Isn't there meaningful recursion there at least?
Nope, it's a token sequence to a token sequence. Any recursive behavior is done via prompting. In fact, transformer's have trouble even keeping track of which token goes which internally. A really common hack is to modify the token vector using the sin of the position to compensate for this.
Transformers are interesting, don't get me wrong. I strongly encourage you to read "The Paper", though since then IIRC the decoder section has been dropped from many implementations.

In the spoiler is a rough diagram of the model from the Attention paper. The attention heads are essentially 3 tensors of NxN tokens, (N being the vocab size), called the query, key, and value. Layer input is multiplied by each, and then query and key are multiplied, passed through something resembling a temperature equation, and then V is applied.
The norm is a layer norm, and the feed forward network is just a roughly 3 layer MLP.

1752194093261.webp

Sorry, your comment after this was interesting and I wonder if machine learning could be used in breaking things down like you mentioned, but when I said "complexity" I meant like doing better than quadratic worst case time. As in, could we do O(n log n) or better?
In the most autistic sense of the word, to rigorously train a model on a problem, if there are N possible inputs, you need N parameters, otherwise you will overfit. It's a consequence of the fundamental theorem of algebra of all things. As far as getting outputs that are suitably correct, it's really hard to answer, that would heavily depend upon the domain, and it's more a problem of optimization and exploiting specific quirks of the problem statement.
I brought up the space complexity of transformers to highlight why they're so goddamn big. When you have a vocabulary of 131072 or larger, and you've got 40 transformer blocks, it adds up very quickly. They're incredibly memory hungry.

Good heuristic. Neovim can integrate Copilot but I refuse to use it. (Neovim with LazyVim probably has too much as is.)

I remember asking ChatGPT to implement a benchmark MNIST digit classifier in QBASIC. It failed the Turing test by not telling me to eat shit and die but surprisingly blocked out a sensible bunch of heavily commented subroutines.
The first time I tried chat gpt, I asked it to implement fibonacci efficiently, and it tossed me the naive recursive implementation. I had to be explicit about memoization and DP to get it to respond properly. That was a huge indicator to me regarding what the training data it used was.
 
most of these are just very good at very specific things, so i think we've mainly gotten a lot better at making computers good at specific things
stockfish is just as good as deep blue at playing different board games than chess (it can't unless you almost completely rewrite it from scratch)
You are talking about bridging the huge gap from artificial narrow intelligence (which is basically just what we call "AI" today) to artificial general intelligence. Here is the book that convinced me embodiment is the way to go:
the "recursion" there is referring to an iterative form of recursion where the neural network replaces its state every word, rather than the typical version of "recursive" where you'd think it would create new frames to work in that mimic the fractal structure of the world around us
I should look into that. Also, your comment reminded me of Sid Meier's Alpha Centauri:

"Our scientists now use fractal theory to 'teach' the molecules to assume, or resume, a particular form. Substances of amazing strength become simple once the formulae are properly computed." —Col. Corazón Santiago, The Council of War

Or, even a better, more relevant one:

"We are no longer particularly in the business of writing software to perform specific tasks. We now teach the software how to learn, and in the primary bonding process it molds itself around the task to be performed. The feedback loop never really ends, so a tenth year polysentience can be a priceless jewel or a psychotic wreck, but it is the primary bonding process—the childhood, if you will—that has the most far-reaching repercussions." —Bad'l Ron, Wakener, Morgan Polysoft

I keep getting older and that game just keeps getting more and more relevant
how close did it get
I don't remember. Here's part of me buck-breaking DeepSeek for an answer:
Screenshot 2025-07-10 at 20-37-57 Implementing MNIST Digit Classifier in QBASIC - DeepSeek.webp
Screenshot 2025-07-10 at 20-38-19 Implementing MNIST Digit Classifier in QBASIC - DeepSeek.webp
Screenshot 2025-07-10 at 20-38-38 Implementing MNIST Digit Classifier in QBASIC - DeepSeek.webp
(The rest wouldn't fit into screenshots neatly.)

I really don't think any of this would run. Actually, no, I'm sure. It appears to think QBASIC is much more "functional" (as in, like, OCaml, or even Python) than it really is. Also, weights(i, j) seems like Pascal-esque pseudocode trained on heaps of pirated e-books. I think it would still be possible to massage this crap into working, if abysmally slow code. DeepSeek was not wrong in thinking the weights would have to be pre-trained; I will give it that much.
The first time I tried chat gpt, I asked it to implement fibonacci efficiently, and it tossed me the naive recursive implementation. I had to be explicit about memoization and DP to get it to respond properly. That was a huge indicator to me regarding what the training data it used was.
To be completely fair:
Screenshot 2025-07-10 at 20-57-38 Efficient Recursive Fibonacci in Python - DeepSeek.webp
Screenshot 2025-07-10 at 20-57-57 Efficient Recursive Fibonacci in Python - DeepSeek.webp
 
Last edited:
To be completely fair:
Screenshot 2025-07-10 at 20-57-38 Efficient Recursive Fibonacci in Python - DeepSeek.webp
Screenshot 2025-07-10 at 20-57-57 Efficient Recursive Fibonacci in Python - DeepSeek.webp
Memoization is a bit of a footgun, it adds a search of the parameter space to the runtime cost, and as well as the space. I've personally gravitated more and more to dynamic programming personally, it has a lot less problems.
 
Memoization is a bit of a footgun, it adds a search of the parameter space to the runtime cost, and as well as the space. I've personally gravitated more and more to dynamic programming personally, it has a lot less problems.
I think that's why DeepSeek suggested @lru_cache. Here maxsize was None but overall I think it is a bit more fine-grained plus fib(n) only has one argument.
 
I think that's why DeepSeek suggested @lru_cache. Here maxsize was None but overall I think it is a bit more fine-grained plus fib(n) only has one argument.
You can implement it as a DP problem pretty simply by having a helper function for Lucas Sequences

C:
int lucas(int a, int b, const int n) {
    if (!a) return b;
    if (!b) return a;
    int c = b;
    for (int i = 0; i < n; i++) {
        int tmp = a + b;
        a = b;
        b = c;
        c = tmp;
    }
    return c
}

int fib(int n) {
    return lucas(1, 1, n); // might be OBO with n but you get the gist
}

I like DP because it allows you to implement memoization on the caller end, which is a lot more flexible.
 
  • Informative
Reactions: Belisarius Cawl
You can implement it as a DP problem pretty simply by having a helper function for Lucas Sequences

C:
int lucas(int a, int b, const int n) {
    if (!a) return b;
    if (!b) return a;
    int c = b;
    for (int i = 0; i < n; i++) {
        int tmp = a + b;
        a = b;
        b = c;
        c = tmp;
    }
    return c
}

int fib(int n) {
    return lucas(1, 1, n); // might be OBO with n but you get the gist
}

I like DP because it allows you to implement memoization on the caller end, which is a lot more flexible.
That's pretty much just iterative Fibonacci isn't it? My main concern is going to be C's handling of integers. Here's my favorite example from Python (limit set to 69 million because why not):
Code:
Python 3.10.12 (main, Jan 17 2025, 14:35:34) [GCC 11.4.0]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.37.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import sys

In [2]: sys.set_int_max_str_digits(69_000_000)

In [3]: 2**2
Out[3]: 4

In [4]: 2**2**2
Out[4]: 16

In [5]: 2**2**2**2
Out[5]: 65536

In [6]: 2**2**2**2**2
Out[6]: 2003529930406846464979072351560255750447825475569751419265016973710894059556311453089506130880933348101038234342907263181822949382118812668869506364761547029165041871916351587966347219442930927982084309104855990570159318959639524863372367203002916969592156108764948889254090805911457037675208500206671563702366126359747144807111774815880914135742720967190151836282560618091458852699826141425030123391108273603843767876449043205960379124490905707560314035076162562476031863793126484703743782954975613770981604614413308692118102485959152380195331030292162800160568670105651646750568038741529463842244845292537361442533614373729088303794601274724958414864915930647252015155693922628180691650796381064132275307267143998158508811292628901134237782705567421080070065283963322155077831214288551675554073345107213112427399562982719769150054883905223804357045848197956393157853510018992000024141963706813559840464039472194016069517690156119726982337890017641517190051133466306898140219383481435426387306539552969691388024158161859561100640362119796101859534802787167200122604642492385111393400464351623867567078745259464670903886547743483217897012764455529409092021959585751622973333576159552394885297579954028471943529913543763705986928913757153740001986394332464890052543106629669165243419174691389632476560289415199775477703138064781342309596190960654591300890188887588084733625956065444888501447335706058817090162108499714529568344061979690565469813631162053579369791403236328496233046421066136200220175787851857409162050489711781820400187282939943446186224328009837323764931814789848119452713007440220765680910376203999203492023906626264491909167985461515778839060397720759279378852241294301017458086862263369284725851403039615558564330385450688652213114813638408384778263790459607186876728509763471271988890680478243230394718650525660978150729861141430305816927924971409161059417185352275887504477592218301158780701975535722241400019548102005661773589781499532325208589753463547007786690406429016763808161740550405117670093673202804549339027992491867306539931640720492238474815280619166900933805732120816350707634351669869625020969023162859350071874190579161241536897514808261904847946571736601005892476655445840838334790544144817684255327207315586349347605137419779525190365032198020108764738368682531025183377533908861426184800374008082238104076468878471647552945326947661700424461063311238021134588694532200116564076327023074292426051582811070387018345324567635625951430032037432740780879056283663406965030844225855967039271869461158513793386475699748568670079823960604393478850861649260304945061743412365828352144806726676841807083754862211408236579802961200027441324438432402331257403545019352428776430880232850855886089962774458164680857875115807014743763867976955049991643998284357290415378143438847303484261903388841494031366139854257635577105335580206622185577060082551288893332226436281984838613239570676191409638533832374343758830859233722284644287996245605476932428998432652677378373173288063210753211238680604674708428051166488709084770291208161104912555598322366244868556651402684641209694982590565519216188104341226838996283071654868525536914850299539675503954938371853405900096187489473992880432496373165753803673586710175783994818471798498246948060532081996066183434012476096639519778021441199752546704080608499344178256285092726523709898651539462193004607364507926212975917698293892367015170992091531567814439791248475706237804600009918293321306880570046591458387208088016887445835557926258465124763087148566313528934166117490617526671492672176128330845273936469244582892571388877839056300482483799839692029222215486145902373478222682521639957440801727144146179559226175083889020074169926238300282286249284182671243405751424188569994272331606998712986882771820617214453142574944015066139463169197629181506579745526236191224848063890033669074365989226349564114665503062965960199720636202603521917776740668777463549375318899587866282125469797102065747232721372918144666659421872003474508942830911535189271114287108376159222380276605327823351661555149369375778466670145717971901227117812780450240026384758788339396817962950690798817121690686929538248529830023476068454114178139110648560236549754227497231007615131870024053910510913817843721791422528587432098524957878034683703337818421444017138688124249984418618129271198533315382567321870421530631197748535214670955334626336610864667332292409879849256691109516143618601548909740241913509623043612196128165950518666022030715613684732364660868905014263913906515063908199378852318365059897299125404479443425166774299659811849233151555272883274028352688442408752811283289980625912673699546247341543333500147231430612750390307397135252069338173843322950701049061867539433130784798015655130384758155685236218010419650255596181934986315913233036096461905990236112681196023441843363334594927631946101716652913823717182394299216272538461776065694542297877071383198817036964588689811863210976900355735884624464835706291453052757101278872027965364479724025405448132748391794128826423835171949197209797145936887537198729130831738033911016128547415377377715951728084111627597186384924222802373441925469991983672192131287035585307966942713416391033882754318613643490100943197409047331014476299861725424423355612237435715825933382804986243892498222780715951762757847109475119033482241412025182688713728193104253478196128440176479531505057110722974314569915223451643121848657575786528197564843508958384722923534559464521215831657751471298708225909292655638836651120681943836904116252668710044560243704200663709001941185557160472044643696932850060046928140507119069261393993902735534545567470314903886022024639948260501762431969305640666366626090207048887438898907498152865444381862917382901051820869936382661868303915273264581286782806601337500096593364625146091723180312930347877421234679118454791311109897794648216922505629399956793483801699157439700537542134485874586856047286751065423341893839099110586465595113646061055156838541217459801807133163612573079611168343863767667307354583494789788316330129240800836356825939157113130978030516441716682518346573675934198084958947940983292500086389778563494693212473426103062713745077286156922596628573857905533240641849018451328284632709269753830867308409142247659474439973348130810986399417379789657010687026734161967196591599588537834822988270125605842365589539690306474965584147981310997157542043256395776070485100881578291408250777738559790129129407309462785944505859412273194812753225152324801503466519048228961406646890305102510916237770448486230229488966711380555607956620732449373374027836767300203011615227008921843515652121379215748206859356920790214502277133099987729459596952817044582181956080965811702798062669891205061560742325686842271306295009864421853470810407128917646906550836129916694778023822502789667843489199409657361704586786242554006942516693979292624714524945408858422726153755260071904336329196375777502176005195800693847635789586878489536872122898557806826518192703632099480155874455575175312736471421295536494084385586615208012115079075068553344489258693283859653013272046970694571546959353658571788894862333292465202735853188533370948455403336565356988172582528918056635488363743793348411845580168331827676834646291995605513470039147876808640322629616641560667508153710646723108461964247537490553744805318226002710216400980584497526023035640038083472053149941172965736785066421400842696497103241919182121213206939769143923368374709228267738708132236680086924703491586840991153098315412063566123187504305467536983230827966457417620806593177265685841681837966106144963432544111706941700222657817358351259821080769101961052229263879745049019254311900620561906577452416191913187533984049343976823310298465893318373015809592522829206820862230332585280119266496314441316442773003237792274712330696417149945532261035475145631290668854345426869788447742981777493710117614651624183616680254815296335308490849943006763654806102940094693750609845588558043970485914449584445079978497045583550685408745163316464118083123079704389849190506587586425810738422420591191941674182490452700288263983057950057341711487031187142834184499153456702915280104485145176055306971441761368582384102787659324662689978418319620312262421177391477208004883578333569204533935953254564897028558589735505751235129536540502842081022785248776603574246366673148680279486052445782673626230852978265057114624846595914210278122788941448163994973881884622768244851622051817076722169863265701654316919742651230041757329904473537672536845792754365412826553581858046840069367718605020070547247548400805530424951854495267247261347318174742180078574693465447136036975884118029408039616746946288540679172138601225419503819704538417268006398820656328792839582708510919958839448297775647152026132871089526163417707151642899487953564854553553148754978134009964854498635824847690590033116961303766127923464323129706628411307427046202032013368350385425360313636763575212604707425311209233402837482949453104727418969287275572027615272268283376741393425652653283068469997597097750005560889932685025049212884068274139881631540456490350775871680074055685724021758685439053228133770707415830756269628316955687424060527726485853050611356384851965918968649596335568216975437621430778665934730450164822432964891270709898076676625671517269062058815549666382573829274182082278960684488222983394816670984039024283514306813767253460126007269262969468672750794346190439996618979611928750519442356402644303271737341591281496056168353988188569484045342311424613559925272330064881627466723523751234311893442118885085079358163848994487544756331689213869675574302737953785262542329024881047181939037220666894702204258836895840939998453560948869946833852579675161882159410981624918741813364726965123980677561947912557957446471427868624053750576104204267149366084980238274680575982591331006919941904651906531171908926077949119217946407355129633864523035673345588033313197080365457184791550432654899559705862888286866606618021882248602144999973122164138170653480175510438406624412822803616648904257377640956326482825258407669045608439490325290526337532316509087681336614242398309530806549661879381949120033919489494065132398816642080088395554942237096734840072642705701165089075196155370186264797456381187856175457113400473810762763014953309735174180655479112660938034311378532532883533352024934365979129341284854970946826329075830193072665337782559314331110963848053940859283988907796210479847919686876539987477095912788727475874439806779824968278272200926449944559380414608770641941810440758269805688038949654616587983904660587645341810289907194293021774519976104495043196841503455514044820928933378657363052830619990077748726922998608279053171691876578860908941817057993404890218441559791092676862796597583952483926734883634745651687016166240642424241228961118010615682342539392180052483454723779219911228595914191877491793823340010078128326506710281781396029120914720100947878752551263372884222353869490067927664511634758101193875319657242121476038284774774571704578610417385747911301908583877890152334343013005282797038580359815182929600305682612091950943737325454171056383887047528950563961029843641360935641632589408137981511693338619797339821670761004607980096016024823096943043806956620123213650140549586250615282588033022908385812478469315720323233601899469437647726721879376826431828382603564520699468630216048874528424363593558622333506235945002890558581611275341783750455936126130852640828051213873177490200249552738734585956405160830583053770732533971552620444705429573538361113677523169972740292941674204423248113875075631319078272188864053374694213842169928862940479635305150560788126366206497231257579019598873041195626227343728900516561111094111745277965482790471250581999077498063821559376885546498822938985408291325129076478386322494781016753491693489288104203015610283386143827378160946341335383578340765314321417150655877547820252454780657301342277470616744241968952613164274104695474621483756288299771804186785084546965619150908695874251184435837306590951460980451247409411373899927822492983367796011015387096129749705566301637307202750734759922943792393824427421186158236161317886392553095117188421298508307238259729144142251579403883011359083331651858234967221259621812507058113759495525022747274674369887131926670769299199084467161228738858457584622726573330753735572823951616964175198675012681745429323738294143824814377139861906716657572945807804820559511881687188075212971832636442155336787751274766940790117057509819575084563565217389544179875074523854455200133572033332379895074393905312918212255259833790909463630202185353848854825062897715616963860712382771725621313460549401770413581731931763370136332252819127547191443450920711848838366818174263342949611870091503049165339464763717766439120798347494627397822171502090670190302469762151278521956142070806461631373236517853976292092025500288962012970141379640038055734949269073535145961208674796547733692958773628635660143767964038430796864138563447801328261284589184898528048048844180821639423974014362903481665458114454366460032490618763039502356402044530748210241366895196644221339200757479128683805175150634662569391937740283512075666260829890491877287833852178522792045771846965855278790447562192663992008409302075673925363735628390829817577902153202106409617373283598494066652141198183810884515459772895164572131897797907491941013148368544639616904607030107596818933741217575988165127000761262789169510406315857637534787420070222051070891257612361658026806815858499852631465878086616800733264676830206391697203064894405628195406190685242003053463156621891327309069687353181641094514288036605995220248248886711554429104721929134248346438705368508648749099178812670565665387191049721820042371492740164460943459845392536706132210616533085662021188968234005752675486101476993688738209584552211571923479686888160853631615862880150395949418529489227074410828207169303387818084936204018255222271010985653444817207470756019245915599431072949578197878590578940052540122867517142511184356437184053563024181225473266093302710397968091064939272722683035410467632591355279683837705019855234621222858410557119921731717969804339317707750755627056047831779844447637560254637033369247114220815519973691371975163241302748712199863404548248524570118553342675264715978310731245663429805221455494156252724028915333354349341217862037007260315279870771872491234494477147909520734761385425485311552773301030342476835865496093722324007154518129732692081058424090557725645803681462234493189708138897143299831347617799679712453782310703739151473878692119187566700319321281896803322696594459286210607438827416919465162267632540665070881071030394178860564893769816734159025925194611823642945652669372203155504700213598846292758012527715422016629954863130324912311029627923723899766416803497141226527931907636326136814145516376656559839788489381733082668779901962886932296597379951931621187215455287394170243669885593888793316744533363119541518404088283815193421234122820030950313341050704760159987985472529190665222479319715440331794836837373220821885773341623856441380700541913530245943913502554531886454796252260251762928374330465102361057583514550739443339610216229675461415781127197001738611494279501411253280621254775810512972088465263158094806633687670147310733540717710876615935856814098212967730759197382973441445256688770855324570888958320993823432102718224114763732791357568615421252849657903335093152776925505845644010552192644505312073756287744998163646332835816140330175813967359427327690448920361880386754955751806890058532927201493923500525845146706982628548257883267398735220457228239290207144822219885587102896991935873074277815159757620764023951243860202032596596250212578349957710085626386118233813318509014686577064010676278617583772772895892746039403930337271873850536912957126715066896688493880885142943609962012966759079225082275313812849851526902931700263136328942095797577959327635531162066753488651317323872438748063513314512644889967589828812925480076425186586490241111127301357197181381602583178506932244007998656635371544088454866393181708395735780799059730839094881804060935959190907473960904410150516321749681412100765719177483767355751000733616922386537429079457803200042337452807566153042929014495780629634138383551783599764708851349004856973697965238695845994595592090709058956891451141412684505462117945026611750166928260250950770778211950432617383223562437601776799362796099368975191394965033358507155418436456852616674243688920371037495328425927131610537834980740739158633817967658425258036737206469351248652238481341663808061505704829059890696451936440018597120425723007316410009916987524260377362177763430621616744884930810929901009517974541564251204822086714586849255132444266777127863728211331536224301091824391243380214046242223349153559516890816288487989988273630445372432174280215755777967021666317047969728172483392841015642274507271779269399929740308072770395013581545142494049026536105825409373114653104943382484379718606937214444600826798002471229489405761853892203425608302697052876621377373594394224114707074072902725461307358541745691419446487624357682397065703184168467540733466346293673983620004041400714054277632480132742202685393698869787607009590048684650626771363070979821006557285101306601010780633743344773073478653881742681230743766066643312775356466578603715192922768440458273283243808212841218776132042460464900801054731426749260826922155637405486241717031027919996942645620955619816454547662045022411449404749349832206807191352767986747813458203859570413466177937228534940031631599544093684089572533438702986717829770373332806801764639502090023941931499115009105276821119510999063166150311585582835582607179410052528583611369961303442790173811787412061288182062023263849861515656451230047792967563618345768105043341769543067538041113928553792529241347339481050532025708728186307291158911335942014761872664291564036371927602306283840650425441742335464549987055318726887926424102147363698625463747159744354943443899730051742525110877357886390946812096673428152585919924857640488055071329814299359911463239919113959926752576359007446572810191805841807342227734721397723218231771716916400108826112549093361186780575722391018186168549108500885272274374212086524852372456248697662245384819298671129452945515497030585919307198497105414181636968976131126744027009648667545934567059936995464500558921628047976365686133316563907395703272034389175415267500915011198856872708848195531676931681272892143031376818016445477367518353497857924276463354162433601125960252109501612264110346083465648235597934274056868849224458745493776752120324703803035491157544831295275891939893680876327685438769557694881422844311998595700727521393176837831770339130423060958999137314684569010422095161967070506420256733873446115655276175992727151877660010238944760539789516945708802728736225121076224091810066700883474737605156285533943565843756271241244457651663064085939507947550920463932245202535463634444791755661725962187199279186575490857852950012840229035061514937310107009446151011613712423761426722541732055959202782129325725947146417224977321316381845326555279604270541871496236585252458648933254145062642337885651464670604298564781968461593663288954299780722542264790400616019751975007460545150060291806638271497016110987951336633771378434416194053121445291855180136575558667615019373029691932076120009255065081583275508499340768797252369987023567931026804136745718956641431852679054717169962990363015545645090044802789055701968328313630718997699153166679208958768572290600915472919636381673596673959975710326015571920237348580521128117458610065152598883843114511894880552129145775699146577530041384717124577965048175856395072895337539755822087777506072339445587895905719156736
In C, code like this will require a lot of extra work
 
That's pretty much just iterative Fibonacci isn't it?
I mean, technically yeah, but it uses dynamic programming. The fibonacci sequence is also a special case of a lucas sequence.

That's pretty much just iterative Fibonacci isn't it? My main concern is going to be C's handling of integers. Here's my favorite example from Python (limit set to 69 million because why not):
In C, code like this will require a lot of extra work
I mean, in any language that would take a lot of work, Python just does the annoying parts for you. If by "C's handling of integers" you mean having byte aligned types, idk what to tell ya, that's a property of the hardware more than anything

All these niggers implementing a Fibonacci function in O(n) clearly haven't read their SICP.
I mean, yeah, you could use floating point and the golden ratio and get something roughly constant time
 
I mean, technically yeah, but it uses dynamic programming. The fibonacci sequence is also a special case of a lucas sequence.
Learned something new today!
I mean, in any language that would take a lot of work, Python just does the annoying parts for you
I did mean arbitrary precision integers. Reminds me of how people shit on COBOL but, at the time when it was introduced, it may have been many programmers' only option for proper decimal arithmetic so crucial to business applications. On a related note:
(I know the British currency system from before decimalization with one pound equaling 20 shillings and each shilling equaling 12 pence for 240 pence total from solving old school math puzzles from across the pond.)
I mean, yeah, you could use floating point and the golden ratio and get something roughly constant time
Like so?
Screenshot 2025-07-10 at 21-45-20 Fibonacci sequence - Wikipedia.webp
 
  • Informative
Reactions: Anti Snigger
Look, even John Carmack had a hard time with SICP
some people are just not cut out for ultimate lambda wizard training, and that's ok
legends say that those who truly read their sicp can write a 4 line lisp program that solves the tsp in log time using linear amounts of stack, they just choose not to
 
  • Thunk-Provoking
Reactions: Belisarius Cawl
Yeah, you can do that IIRC with any lucas sequence, the recurrence relation allows it. You can rewrite a relation like that in terms of differences, and those have analogues to differential equations. It's an interesting board exercise
 
  • Informative
Reactions: Belisarius Cawl
some people are just not cut out for ultimate lambda wizard training, and that's ok
legends say that those who truly read their sicp can write a 4 line lisp program that solves the tsp in log time using linear amounts of stack, they just choose not to
I sense some irony from your post
Yeah, you can do that IIRC with any lucas sequence, the recurrence relation allows it. You can rewrite a relation like that in terms of differences, and those have analogues to differential equations. It's an interesting board exercise
Differences, as in, like, the Difference Engine? I vaguely remember that from reading Dermot Turing's book (and yeah he is related to him by virtue of being his nephew)
 
I sense some irony from your post

Differences, as in, like, the Difference Engine? I vaguely remember that from reading Dermot Turing's book (and yeah he is related to him by virtue of being his nephew)
I mean it in the sense of defining an operator Δ whereby for a sequence or function s(n), Δs = s(n+1) - s(n). It's essentially the derivative for discrete cases, there are method I can't remember off the top of my head for converting a difference equation to a differential one and vice-versa.
 
  • Thunk-Provoking
Reactions: Belisarius Cawl
I mean it in the sense of defining an operator Δ whereby for a sequence or function s(n), Δs = s(n+1) - s(n). It's essentially the derivative for discrete cases, there are method I can't remember off the top of my head for converting a difference equation to a differential one and vice-versa.
virgin-vs-chad-physicist-engineer.webp
>approximates everything
>uses Newton-Raphson method on quadratic equations
>would rather count squares under a graph instead of integrating analytically just to piss off physicists
 
Back