-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/converter #80
base: development
Are you sure you want to change the base?
Feature/converter #80
Conversation
# Conflicts: # hypedyn-ui/src/main/scala/org/narrativeandplay/hypedyn/Main.scala
Nice pull request. A few issues though:
instead of ScalaDoc style of
These are the most problematic issues at the moment. I'll do a more in-depth code review of the parser later. |
|
…erter # Conflicts: # hypedyn-core/src/main/scala/org/narrativeandplay/hypedyn/events/CoreEventDispatcher.scala
…erter # Conflicts: # hypedyn-core/src/main/scala/org/narrativeandplay/hypedyn/events/CoreEventDispatcher.scala
I've taken a closer look at your revised parser, and it's still not ready for merging. I'll explain as much as I can about what's wrong with the code, and some of the philosophy behind how code is written in HypeDyn2 (mostly applies to core and api, UI related things have to deal with Java, and thus can't be as nice). By and large, we adopt a functional programming style in HypeDyn. This is a very vague term, understandably, but at least, in this context, it means no or absolutely minimal mutation, and proper use of higher order functions. I'll cover these points before moving on to more specific points on style. There are exactly 6 Speaking of imperative programming style, your use of that style causes your code to be very deeply indented, and structured into large blocks, making it very hard to read and understand. This reduces code maintainability, because it is a lot to keep track of while reading code. Your list processing style is also very steeped in imperative style, using iterators instead of more natural Functional programming also emphasises the use of functions to transform data. We specify how we want data transformed (through higher-order functions like Related to this is how you call higher-order functions in your code. Please take another look at the style guide for how to call higher-order functions. Functions that have a symbolic name are considered operators, and are expected to be invoked in the way operators are expected to be invoked. The remaining points I shall leave in point form, to reduce the length of this post.
|
Removed all instances of vars Replaced iterators with map, filter and pattern matching Restructured parser combinators to use value class Removed all unneccessary type annotations
…ure/converter # Conflicts: # gradle/wrapper/gradle-wrapper.properties
Implemented converter from issue #28 as a "import" feature in the new Hypedyn.