-
Notifications
You must be signed in to change notification settings - Fork 435
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
toLower and toUpper in Basic.lean are incomplete #741
Comments
@lovettchris From what I can tell, the support mostly exists for allowing exoteric mathematical symbols in source code, not to do string processing or to support coding in foreign languages (e.g., #698). While there are many users from countries where English is not the primary language, they thus far seem to have decided to stick with English (see the Zulip thread on the question of translating the mathlib docs for an example). That is, there does not seem to be sufficient demand to support other languages at the moment to justify the cost needed to do so. |
I'm just pointing out every other programming language that provides toUpper and toLower do it properly, for example, here's the Rust implementation .So it will confuse a lot of folks when they realize the Lean version isn't. So I would recommend either fixing it or removing it. Statically linking the official unicode library would not be hard to do. This also helps with "isWhitespace". So either Lean is trying to be a full programming language or it isn't... Sure the priority can be lower than other things right now, but I think it needs to get fixed at some point. |
@lovettchris I mean, the |
It definitely should be. The short answer is that "trying to be a full programming language" is not the main focus right now. |
As @tydeu pointed out, this discussion should be part of the standard library design. I am closing this issue here since it is not blocking any Lean user. |
Leo where are the "standard library design" issues kept then so I can move it there? |
We currently don't have a repo for the std library yet. It is not the current focus right now. |
Note that it may not even be a single repo, but a collection of repos. |
TODO: * Before merge - [x] fix a bug in linarith in mathlib3 I just found ... - [x] depends on: leanprover#519 - [x] style lint - [x] docs - [X] move theory stubs to a separate PR, for easier tracking: leanprover#733 - [x] failing to parse the `LinarithConfig` option * Before or after merge? - [ ] Implement the `removeNe` preprocessor. - [ ] Add support for restricting to a single type. How to store a `Type` in `LinarithConfig`? * After merge - [ ] Teach `norm_num` to solve `example [LinearOrderedRing α] : (0 : α) < 37 := by norm_num`. - [ ] Port `zify_proof` (plumbing for `zify`), and add the `natToInt` preprocessor. Mostly done now, but see leanprover#741 before all the tests will work. - [ ] Port `cancel_denoms` tactic, and add the `cancelDenoms` preprocessor. - [ ] Add the `nlinarith` preprocessor and front-end syntax. Co-authored-by: Mario Carneiro <[email protected]> Co-authored-by: Scott Morrison <[email protected]>
Prerequisites
Description
See ucase.cpp for full unicode consortium implementation of ucase_toFullLower.
Steps to Reproduce
Expected behavior: [What you expect to happen]
Should return unicode value 913, which is the greek letter "Α"
Actual behavior: [What actually happens]
Instead returns unmodified string "α"
Reproduces how often: [What percentage of the time does it reproduce?]
100%
Versions
"leanprover/lean4:nightly-2021-10-22"
Additional Information
Any additional information, configuration or data that might be necessary to reproduce the issue.
The text was updated successfully, but these errors were encountered: