Comments (4)
Thanks for your interest in Graph.
Someone asked about this on the mailing list earlier:
https://groups.google.com/d/msg/prismatic-plumbing/VdlQF4LgIj0/LH21gJGnvxQJ
As I mentioned there, I'm hesitant to allow this because it reduces the amount of error checking we can do, and also makes nodes as constant functions ambiguous. There's also little reason I can see for constant values to be part of the Graph -- they can just as well be part of the input parameters.
That said, if you can make a compelling argument for why the benefits outweigh the downsides, we're happy to consider a change.
from plumbing.
Thanks for Graph! :)
Not sure there is a compelling argument to be made - it just looks visually more appealing to have a single map literal rather than a graph and an input map in some cases (e.g. when returning a map which will be converted to a JSON object by Ring middleware from a REST API function).
As for the downsides, I think the current behavior is a fine default - what I'd like to see is an alternative constructor (`partial->graph' maybe?) which let's the user make the error-checking trade-off explicit. Could the ambiguity issue be solved by checking for meta data to determine whether something is a fnk?
from plumbing.
On Mon, Aug 12, 2013 at 11:24 AM, Jakob Sievers [email protected]:
Thanks for Graph! :)
You're welcome :)
Not sure there is a compelling argument to be made - it just looks
visually more appealing to have a single map literal rather than a graph
and an input map in some cases (e.g. when returning a map which will be
converted to a JSON object by Ring middleware from a REST API function).As for the downsides, I think the current behavior is a fine default -
what I'd like to see is an alternative constructor (`partial->graph'
maybe?) which let's the user make the error-checking trade-off explicit.
Could the ambiguity issue be solved by checking for meta data to determine
whether something is a fnk?Fair enough :). No matter what, there will always be an ambiguity between
a constant fnk and a node, but I see your point about allowing a choice.
Does it seem reasonable for you to put partial->graph in your own library
for now, and if after using it for awhile you still feel like it's valuable
you can submit a pull request and we'll most likely bring it in?
Thanks,
Jason
—
Reply to this email directly or view it on GitHubhttps://github.com//issues/9#issuecomment-22514000
.
from plumbing.
Absolutely!
from plumbing.
Related Issues (20)
- Clojurescript version of topological-sort incorrectly (and randomly) reports a graph cycle error HOT 2
- Metadata Reader Macros and fnks HOT 4
- fnk binding form can't combine optional parameters with destructuring HOT 4
- Feature suggestion: defs HOT 6
- Compile Time Schema Checks HOT 3
- Outputing maps from graphs HOT 4
- defnk-defined functions don't document their args HOT 1
- Schema for Graph HOT 3
- Support for namespaced keys, part II HOT 9
- Annotate defnk/fnk meta with their :file HOT 1
- Functional versions of ?> and ?>> HOT 4
- (map/flatten {:foo false}) -> '() HOT 1
- lazymap's repository has been deleted, please migrate away from it HOT 6
- `eager-compile` throws an error with large graphs HOT 6
- `plumbing.core/keywordize-map` causes shadow-cljs warnings even it is not used in the project HOT 1
- cjlx has been deprecated
- Fix API documentation
- Please consider making a new release HOT 8
- Letk destructuring of an optional renamed key with schema validation HOT 6
- Malformed \uxxxx encoding error via clojars artifact HOT 4
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 plumbing.