-
Notifications
You must be signed in to change notification settings - Fork 31
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
ported to C# 4 #3
base: master
Are you sure you want to change the base?
Conversation
Avoiding features: "using static", string interpolations with $ and null-checks with ?. op. String interpolations were replaced with string.Format. null-checks are done use if statement. "using static" is a bit trickier: - ListConstructor was inserted explicitly, - all methods from Symbolism.Constructors and Symbolism.Trigonometric.Constructors were moved into Symbolism.Function and inheritance was used to "import" names.
Wow, this is impressive Aleksey! Very cool that you were able to backport everything. I'll definitely leave this pull request here as a reference in case anyone else needs to port to C# 4. If you're free and willing to comment, would love to know more about why you needed to stick with C# 4.0. |
On Wed, Nov 04, 2015 at 07:52:24PM -0800, dharmatech wrote:
Much more impressive is that you have a firm style. :-) It simplified
Thank you!
C# 6 was not convenient for me because I teach students and there is Also I tried other systems: this one I teach students Difference equations (not differential equations) and
And then, we manipulate the formula. I had to write some code to make I'll open some issues to talk about problems and possible new features. Thanks! Regards, |
Yes, unfotunately the If they decide to add an operator for exponentiation, it will likely be |
Yes, please do! |
Wow, that's very cool. This is the first I've ever heard of Symbolism being used in a classroom. I wasn't expecting that! But I'm glad to hear it suited your needs. |
Avoiding features: "using static", string interpolations with $ and null-checks with ?. op.
String interpolations were replaced with string.Format.
null-checks are done use if statement.
"using static" is a bit trickier:
Also avoided => for method definitions.
I applied the following one-liners to parts of code, not to full files (C-| in emacs):
perl -pe '@A = (); $a = 0; s/$//; s/{([^}]+)}/push @A, $1; "{" . $a++ . "}"/ge; s/"."/"string.Format($&, " . (join ", ", @A) . ")"/ge'
perl -lpe 's/=> /{ return / && s/\s$/ }/'
Feel free to ignore this pull-request if you would like to keep your code as C# 6. I find "using static" feature useful, while my inheritance is a dirty hack.