uiua
swift-algorithms
uiua | swift-algorithms | |
---|---|---|
9 | 26 | |
1,384 | 5,716 | |
4.7% | 1.0% | |
10.0 | 6.4 | |
3 days ago | 5 days ago | |
Rust | Swift | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
uiua
- Borrow Checking, RC, GC, and the Eleven () Other Memory Safety Approaches
-
Array Languages vs. the Curse of the Spreadsheet
This is what I love in Uiua[1]. That operators can be written as english words instead of unicode symbols. Makes it quite similar looking to functuinal point free code.
[1]: https://www.uiua.org/
- KamilaLisp – A functional, flexible and concise Lisp
-
k on pdp11
you may also enjoy uiua (https://www.uiua.org/) which uses these alien glyphs but is even more alien because it's a concatenative language (stack oriented), like forth or postscript, but to make it even more alien it's written right to left. For example 1+2 is written "+ 1 2" (in forth it would be "1 2 +")
The language and the site are brilliant and I think worth 30m of your time skimming through and trying out the examples in the online editor / tutorial.
-
-❄️- 2023 Day 11 Solutions -❄️-
From https://www.uiua.org/
-
Attempting each AOC in a language starting with each letter of the alphabet
If you're fine with tacit array-oriented (ie APL-like): Uiua.
-
Vector database is not a separate database category
As a lover of array languages, I remember being excited to read a futurist article on vector processors and programming languages. It was written right before Wes McKinney worked on Pandas (the J programming language influenced him), and I thought J/APL or another array language was going to explode. J has Jd, in which J is fully integrated. This did not come to pass (yet). No matter, I still enjoy array languages anyway. There's a new array language, uiua[1], that is a mix of array and stack concepts with a good standard library including audio and graphics.
[1] https://www.uiua.org/
-
Uiua: A minimal stack-based, array-based language
Yeah
> The main language that inspired Uiua is BQN. While I had heard about APL before, BQN was my first real exposure to the power of the array paradigm. I think the language is an astounding feat of engineering. Marshall is both a genius and a great communicator.
https://www.uiua.org/docs/design
Also, a week ago there were only two contributors to the project: 1000+ by kaikalii, and this single commit by Marshall:
https://github.com/uiua-lang/uiua/pull/1/files
swift-algorithms
-
-❄️- 2023 Day 11 Solutions -❄️-
While you are correct about the stdlib, check out swift-algorithms (https://github.com/apple/swift-algorithms). It's written by Apple and has several interesting methods.
-
Do you use algorithms in Swift?
We used Swift Algorithms once or twice. It just depends on the app. I suggest starting with the WWDC video.
-
Checking the largest values in an arrary
Install swift-algorithms and use min/max(count:by:)
-
-🎄- 2022 Day 6 Solutions -🎄-
#!/usr/bin/env swift sh import Algorithms // https://github.com/apple/swift-algorithms struct StandardInput: Sequence, IteratorProtocol { func next() -> String? { return readLine() } } func markerEnd(for signal: String, markerLength: Int) -> Int { return Array(signal.windows(ofCount: markerLength)) .firstIndex { Set($0).count == markerLength }! + markerLength } let signals = StandardInput().compactMap { $0 } let part1 = signals.map { markerEnd(for: $0, markerLength: 4)}.reduce(0, +) let part2 = signals.map { markerEnd(for: $0, markerLength: 14)}.reduce(0, +) print("part 1 : \(part1)") print("part 2 : \(part2)")
-
-🎄- 2022 Day 5 Solutions -🎄-
#!/usr/bin/env swift sh import Algorithms // https://github.com/apple/swift-algorithms typealias Label = Character typealias Instruction = (amount: Int, source: Int, destination: Int) struct StandardInput: Sequence, IteratorProtocol { func next() -> String? { return readLine(strippingNewline: false) } } let sections = StandardInput() .compactMap { $0 } .split(separator: "\n") .map { Array($0) } let stacks = parseStacks(from: sections[0]) let instructions = parseInstructions(from: sections[1]) print(apply(instructions, to: stacks, oneAtATime: true)) print(apply(instructions, to: stacks, oneAtATime: false)) // MARK: - Private private func parseStacks(from section: [String]) -> [[Label]] { let crates = section.map { let start = $0.index($0.startIndex, offsetBy: 1) return Array($0.suffix(from: start).striding(by: 4)) } let stackCount = crates[0].count var stacks: [[Label]] = Array(repeating: [Label](), count: stackCount) crates.reversed().forEach { for (index, label) in $0.enumerated() { stacks[index].append(label) } } return stacks.map { $0.filter { $0.isLetter } } } private func parseInstructions(from section: [String]) -> [Instruction] { return section.map { let tokens = $0.dropLast().split(separator: " ") return (Int(tokens[1])!, Int(tokens[3])! - 1, Int(tokens[5])! - 1) } } private func apply( _ instructions: [Instruction], to stacks: [[Label]], oneAtATime: Bool ) -> String { var stacks = stacks instructions.forEach { let cargo = Array(stacks[$0.source].suffix($0.amount)) stacks[$0.source] = stacks[$0.source].dropLast($0.amount) stacks[$0.destination].append( contentsOf: oneAtATime ? cargo.reversed() : cargo ) } return String(stacks.map { $0.last! }) }
-
-🎄- 2022 Day 3 Solutions -🎄-
Swift. Algorithms contains chunks(ofCount: 3) but I had to write chunks(totalCount:) myself.
-
-🎄- 2022 Day 1 Solutions -🎄-
Algorithms has `max(count:)` now. 💻🖥️
-
foursum?
Create windows of 4 elements.
-
Understanding algorithms
There is also a swift algorithm package that’s a precursor to the standard library if you want to examine legit implementation built into Swift.
-
-🎄- 2021 Day 1 Solutions -🎄-
I used Algorithms and took inspiration from Kotlin with it's zipWithNext function.
What are some alternatives?
bqnpad - Online REPL for BQN
v2ray-core - A platform for building proxies to bypass network restrictions.
BQN - An APL-like programming language. Self-hosted!
swift-evolution - This maintains proposals for changes and user-visible enhancements to the Swift Programming Language.
related_post_gen - Data Processing benchmark featuring Rust, Go, Swift, Zig, Julia etc.
SpringBoot-Labs - 一个涵盖六个专栏:Spring Boot 2.X、Spring Cloud、Spring Cloud Alibaba、Dubbo、分布式消息队列、分布式事务的仓库。希望胖友小手一抖,右上角来个 Star,感恩 1024
edina - Edina - A simple stack-oriented compiled programming language.
swift-numerics - Advanced mathematical types and functions for Swift
cognate - A human readable quasi-concatenative programming language
spring-boot-demo - 🚀一个用来深入学习并实战 Spring Boot 的项目。
kotlingrad - 🧩 Shape-Safe Symbolic Differentiation with Algebraic Data Types
CS-Notes - :books: 技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计