You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It's often the case when I want to construct an Array[T] or FixedArray[T] from a function that can raise error. For example, I want to construct a Tensor from a Json value:
fn main {
match json {
Json::Number(x) => Tensor::new(x)
Json::Array(xs) => {
let value : FixedArray[Tensor] = FixedArray::makei(xs.length(), fn(i) {
Tensor::from_json!(xs[i], @json.add_index(path, i))
})
Tensor::stack(value)
}
_ => raise @json.JsonDecodeError((path, "Expected an array"))
}
}
For now it is not possible to achieve this, since FixedArray::makei require the callback to be error-free.
The text was updated successfully, but these errors were encountered:
tonyfettes
changed the title
[feature request] add error-awared makei, map function
[feature request] add error-awared functions like: makei_error, map_errorSep 21, 2024
@tonyfettes Maybe the functions of all core module have to add the error feature. But i wish you do not use error feature in you code. Because this feature influences all related code if you use it. Just like now scene you face.
let value : FixedArray[Tensor] = FixedArray::makei(xs.length(), fn(i) {
Tensor::from_json!(xs[i], @json.add_index(path, i))
})
Tensor::stack(value)
Note you work around this using for .. in , I am hestitant to add such API since eventually want our map to propagate callbacks with Error something like this:
map[A](self : Array[A], f : (A) ->B!_) -> Array[B]!_ // when call back has error, result has error
It's often the case when I want to construct an
Array[T]
orFixedArray[T]
from a function that can raise error. For example, I want to construct aTensor
from aJson
value:For now it is not possible to achieve this, since
FixedArray::makei
require the callback to be error-free.The text was updated successfully, but these errors were encountered: