Skip to content
Snippets Groups Projects
Commit 16bb5801 authored by Jim Wallace's avatar Jim Wallace
Browse files

mutating functions

parent be9af580
No related branches found
No related tags found
1 merge request!14- Improved ergonomics for generic types: SNLPCorpus, SNLPEncoder, InMemoryCorpus
Pipeline #115767 passed with warnings
......@@ -42,8 +42,8 @@ protocol SNLPCorpus<Item> {
var dimensions: UInt { get }
var count: Int { get }
func addUntokenizedDocument(_ document: Item)
func addUntokenizedDocuments(_ documents: [Item])
mutating func addUntokenizedDocument(_ document: Item)
mutating func addUntokenizedDocuments(_ documents: [Item])
func searchFor(_ query: String) -> [Item]
}
......@@ -59,7 +59,7 @@ extension SNLPCorpus {
/**
Adds a series of untokenized documents to the corpus, using default tokenization and text processing
*/
func addUntokenizedDocuments(_ documents: [Item]) {
mutating func addUntokenizedDocuments(_ documents: [Item]) {
for d in documents {
addUntokenizedDocument(d)
}
......
......@@ -23,7 +23,7 @@
import Foundation
final class InMemoryCorpus<Scalar: BinaryFloatingPoint, Encoder: SNLPEncoder, Item: SNLPDataItem>: SNLPCorpus where Encoder.Scalar == Scalar {
struct InMemoryCorpus<Scalar: BinaryFloatingPoint, Encoder: SNLPEncoder, Item: SNLPDataItem>: SNLPCorpus where Encoder.Scalar == Scalar {
internal var documentEncoder: Encoder
......@@ -41,14 +41,14 @@ final class InMemoryCorpus<Scalar: BinaryFloatingPoint, Encoder: SNLPEncoder, It
documentEncoder = encoder
}
func addUntokenizedDocument(_ document: Item) {
mutating func addUntokenizedDocument(_ document: Item) {
documents.append(document)
encodedDocuments.append(documentEncoder.encodeSentence(document.fullText))
assert( documents.count == encodedDocuments.count )
}
func addUntokenizedDocuments(_ documents: [Item]) {
mutating func addUntokenizedDocuments(_ documents: [Item]) {
for document in documents {
addUntokenizedDocument(document)
}
......
......@@ -77,7 +77,7 @@ final class NaturalLanguageEncoderTests: XCTestCase {
let (submissions, _ ): ([Submission],[Data]) = try await loadFromRedditArchive(submissionsData)
let encoder = NaturalLanguageEncoder<Double>()
let corpus = InMemoryCorpus<Double,NaturalLanguageEncoder,String>(encoder: encoder)
var corpus = InMemoryCorpus<Double,NaturalLanguageEncoder,String>(encoder: encoder)
for submission in submissions {
if let text = submission.selftext {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment