Comments (2)
Hye, @schittli. Thanks for the heads up. I didn't think about it before, but yes, this is a limitation of the current implementation of functions. Functions use a Memory Cell or Memory Bank to record parameters and return addresses. Since those buildings only store numbers, we unfortunately can't store anything else.
For the specific example you provided, I don't really see any way around it. We can't pass in the type of building, nor can we return the building from within.
There might be a way around this, but it would prevent certain classes of functions from working, namely recursive functions (functions that call themselves, directly or indirectly).
One thing that Mindcode could do though is provide a warning saying "functions can only return numeric values". That would help the developer.
Thanks for your time and suggestion. I'll add that to the roadmap. Cheers!
from mindcode.
Thank you very much, @francois, for your help!, now it's clear why it was not working :-)
from mindcode.
Related Issues (20)
- Incorrect handling of chained assignments and ternary operators HOT 1
- If Expression optimization fails to preserve variable value
- Speed optimizations HOT 4
- Case expression as a function argument compiles incorrectly
- Compilation errors are not properly reported
- Bug: loop unrolling fails on degenerate loops
- Comments on last line produce syntax errors
- Full support for Mindustry v7 HOT 3
- If and While conditions incorrectly evaluated
- Double quotes not allowed inside strings
- Parameters not passed to inline functions
- Schematics builder HOT 5
- PrintMerger merges across pritflush
- Properties cannot be invoked directly on function return values
- Mindcode compiled wrong when using semicolons
- how to break 1000 insts limit HOT 9
- Expressions containing variable assignments possibly not correctly evaluated
- Data Flow optimization crashes when source code contains unused user defined functions
- Data Flow optimization incorrectly handles exit points HOT 1
- Empty functions don't compile
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mindcode.