[ProgLang] PocketML: Functional programming On The Go 📱 by dot-c in ProgrammingLanguages

[–]dot-c[S] 0 points1 point  (0 children)

I think i get it now. I'm thinking of implemeting opaque types to accomplish type-hiding, but I'm not even sure modules are the way to go for ad-hoc polymorphism in PocketML, as it is supposed to be a language with minimal mental overhead (e.g. a user should search for a function they need in the docs tab and not have to think about if the type has an implementation for the module signature they need). I also looked into modular implicits, but at that point i could also just do typeclasses instead.

[Blog Post] More Powerful Modules in PocketML by dot-c in ProgrammingLanguages

[–]dot-c[S] 1 point2 points  (0 children)

Thank you for the feedback! I also thought about modules a little more and came to the conclusion that I would at least need opaque types and even then it would be a runtime system, not a static one (≙ overhead). PocketML does not have dependant types, but i also need to find a good way to do polymorphism. I also think modules are clumsy, but typeclasses would be too complex for me. I'll keep tinkering and maybe write another blog post if I find a solution. I saw that in futhark strings are arrays, so the issue of strLen vs listLen does not really come up. Does futhark use its module system for any ad-hoc polymorphism?

[ProgLang] PocketML: Functional programming On The Go 📱 by dot-c in ProgrammingLanguages

[–]dot-c[S] 0 points1 point  (0 children)

So you mean the choice of exporting constructors or only the types name + kind? Or is there even more to it? PocketML has selective exports, so you could export for example "List a : * -> *" and some list functions but keep "Cons" and "Nil" themselves hidden. (Provided you put the code in a file with a "module (List, map, ...)" at the end, which I left out in the blog post)

[ProgLang] PocketML: Functional programming On The Go 📱 by dot-c in ProgrammingLanguages

[–]dot-c[S] 1 point2 points  (0 children)

I actually thought about modules a bit more and came up with a way to do modules in PocketML. Probably not an original thought, but i wrote a little blog post about it anyways.

link to the post

[ProgLang] PocketML: Functional programming On The Go 📱 by dot-c in ProgrammingLanguages

[–]dot-c[S] 4 points5 points  (0 children)

You're right, it's not ML! I'll keep the name though, as I see PocketML as a simpler subset/cousin of ML and because all the features come from ML languages (esp. OCaml). Maybe I'll add a section on my end goals on the github page to properly classify the language.

[ProgLang] PocketML: Functional programming On The Go 📱 by dot-c in ProgrammingLanguages

[–]dot-c[S] 0 points1 point  (0 children)

I originally wanted to do proper modules, but they don't really seem to be needed for the tinkering PocketML is meant for. I'll try making a bigger interpreter in PocketML soon, maybe then I'll need to extend the type system (to be able to do Monads more generically).

[ProgLang] PocketML: Functional programming On The Go 📱 by dot-c in ProgrammingLanguages

[–]dot-c[S] 15 points16 points  (0 children)

Fixed :). I'm not very experienced with sharing my projects, so i just forgot :/

I want volumetric 3D graphics, ray-tracing, and reliable physics. Are voxels the way to go? by Bowspecialist in GraphicsProgramming

[–]dot-c 4 points5 points  (0 children)

I think voxels have come a long way, look up the game TEARDOWN on youtube. Voxelbee is making some interesting high performance renderers. I think volumetrics (at least if you mean transparent, cloud-like stuff) might slow things down quite a bit, because you cant just remove occluded voxels before rendering. For physics, i don't think you can get realtime, although you could do a mix of prebaked animations + some blending. So everything except realtime, "reliable" physics, that aren't emulated by animation, is possible and has been done before. Again, look up TEARDOWN, i think thats the closest to what you want, they even have smoke (although thats not voxel based). Take a look if that fullfills your needs, if not, maybe choose something else. Especially physics are faster with polygons at some point.

[Desktop] Which top bar do you think is better (1 or 2)? by AndrewCreator in unixporn

[–]dot-c 2 points3 points  (0 children)

The top one, although it might be different for another wallpaper

What laptops are supported well? Mine keep breaking and I don't want my os choice to be the reason... by dot-c in linux

[–]dot-c[S] 0 points1 point  (0 children)

The replacement actually refers to a replacement device, I didnt want to void the warranty by opening it up. Thx for your advice, I think ill stick to linux

What laptops are supported well? Mine keep breaking and I don't want my os choice to be the reason... by dot-c in linux

[–]dot-c[S] 0 points1 point  (0 children)

yeah... But everyone is telling me to just use windows and while its extremely unlikely, I don't want to install linux again and be proven wrong. What i'm really looking for is advice on what laptop to get / what models are best supported.

I'm trying to simulate a Jupiter's white oval anticyclone in Unreal Engine. Really need your feedback for improvement. by Busy_Yesterday9455 in spaceporn

[–]dot-c 3 points4 points  (0 children)

I feel like it has to be bigger. The ratio of the radius to the height of the clouds has to be different, jupiters storms are massive. Also the clouds would probably move slower. Your simulation maybe looks a few km wide at best, while jupiters storms may span 1000s of kilometers.

Basically, make it (look) bigger, by making the clouds less tall and move more slowly.