RISE: A functional pattern-based data-parallel language in MLIR